Skip to content

[RC-2813] go wrapper#54

Open
mellon85 wants to merge 24 commits into
mainfrom
dario.meloni/RC-go-wrapper
Open

[RC-2813] go wrapper#54
mellon85 wants to merge 24 commits into
mainfrom
dario.meloni/RC-go-wrapper

Conversation

@mellon85

@mellon85 mellon85 commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Notes

you can check the coverage with

cargo build
cd wrapper/go
go test -v -cover -coverprofile=coverage.out -tags=test_helpers ./...
go tool cover -func=coverage.out | grep -v internal

Commits

  • feat: add Go bindings for libdd-rc (74cba55)
      Add comprehensive Go bindings for the Datadog Remote Configuration
      X509 client library with both high-level and low-level APIs.
      
      High-level API features:
      - Context support for cancellation and timeouts
      - Idiomatic Go error handling
      - Thread-safe operations with proper locking
      - Lifecycle validation to prevent misuse
      - Sender interface for flexible I/O handling

@mellon85 mellon85 self-assigned this Mar 25, 2026
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch 14 times, most recently from bce1e32 to 894dd5f Compare March 26, 2026 10:33
Comment thread wrapper/go/client.go Outdated
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch 2 times, most recently from 9c7f07d to b70ad21 Compare March 26, 2026 13:55
Comment thread .github/workflows/go.yml Fixed
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch 2 times, most recently from ed7d5cb to 618381f Compare March 26, 2026 14:38
@mellon85 mellon85 marked this pull request as ready for review March 26, 2026 14:52
@mellon85 mellon85 requested a review from a team as a code owner March 26, 2026 14:52
Comment thread wrapper/go/client.go Outdated
Comment thread wrapper/go/client.go Outdated
Comment thread wrapper/go/client.go Outdated
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch from becc00f to 4a31583 Compare April 14, 2026 11:43
Comment thread .github/workflows/go.yml Fixed
@mellon85 mellon85 requested a review from ameske April 14, 2026 12:48

@domodwyer domodwyer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

Quick look over the layout - I'll check the go code after!

Comment thread lib/rc-x509-client/src/entrypoint.rs Outdated
Comment thread .github/workflows/rust.yml Outdated
Comment thread lib/rc-x509-proto/build.rs Outdated
Comment thread .github/workflows/go.yml
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch 2 times, most recently from f36bf09 to 3b3335c Compare April 15, 2026 15:26
@domodwyer domodwyer force-pushed the dario.meloni/RC-go-wrapper branch 3 times, most recently from 7dac780 to 3f76144 Compare April 20, 2026 10:27
Changes:

    * Use build image w/ pre-installed dependencies.
    * Use reusable cache action instead to avoid trashing cache.
    * Build dev version of FFI harness (faster, more assertions).
    * Generate the code prior to running tests (checks codegen).
This is unnecessary - the dependencies are all in the build image
already.
These shell expansions aren't evaluated.
@domodwyer domodwyer force-pushed the dario.meloni/RC-go-wrapper branch from 3f76144 to 9934775 Compare April 20, 2026 10:33

@domodwyer domodwyer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed these changes:

  • ci: install protoc-gen-go in build image (08f1f7c)

  • chore: do not check in generated code (2513d27)

  • ci: simplify and normalise Go workflows (cf6f2af)

    Changes:
    
        * Use build image w/ pre-installed dependencies.
        * Use reusable cache action instead to avoid trashing cache.
        * Build dev version of FFI harness (faster, more assertions).
        * Generate the code prior to running tests (checks codegen).
    
  • ci: do not install deps that are in build image (c93ae50)

    This is unnecessary - the dependencies are all in the build image
    already.
    
  • chore: do not check in generated test code (afc6071)

  • ci: PATH changes in generator script (4c5cf33)

  • ci(fix): remove ENV for protoc-gen-go (3695f14)

  • ci: gobin path (9934775)

  • refactor(go): rc-x509-test-harness does not reexport (d0303d9)

  • revert: keep existing rx-client name (ac9c75d)

  • refactor: test-harness -> test-harness-ffi (aa2295a)

    We will have more test harness crates for the other crates.
    

Comment thread .github/workflows/go.yml
Comment thread .github/workflows/go.yml Outdated
Comment thread .github/workflows/cbindgen.yml Outdated
Comment thread .github/workflows/fuzz.yml Outdated
Comment thread .github/workflows/miri.yml Outdated
Comment thread wrapper/go/internal/testproto/protocol.pb.go Outdated
Comment thread .github/workflows/rust.yml Outdated
Comment thread lib/rc-x509-client/src/entrypoint.rs Outdated
Comment thread lib/rc-x509-client/Cargo.toml Outdated
Comment thread lib/rc-x509-test-harness/Cargo.toml Outdated
@mellon85 mellon85 changed the title [RC] go wrapper [RC-2813] go wrapper May 5, 2026
@mellon85 mellon85 requested a review from domodwyer May 5, 2026 10:53
mellon85 added 3 commits May 5, 2026 11:11
The context is propagated across the C API boundaries to the callbacks,
so that they are in charge of handling the expiration of the context or
the errors carried by it.
@mellon85 mellon85 force-pushed the dario.meloni/RC-go-wrapper branch from 24e628e to 0e8050c Compare May 5, 2026 11:11
@mellon85 mellon85 enabled auto-merge May 7, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants