Skip to content

Go bindings - #370

Open
Jsewill wants to merge 14 commits into
xch-dev:mainfrom
Jsewill:go-bindings
Open

Jsewill wants to merge 14 commits into
xch-dev:mainfrom
Jsewill:go-bindings

Conversation

@Jsewill

@Jsewill Jsewill commented Mar 26, 2026 •

Copy link
Copy Markdown

With the aid of claude, I added Go language bindings. For the sake of Go package documentation conventions, I ended up adding a "doc" entry to the json files, so the generator draws from that. I have opened a pull request for the docs, too: xch-dev/docs#6 .

@Jsewill Jsewill mentioned this pull request Mar 26, 2026
Sync upstream SDK 0.36 while preserving the Go binding history. Regenerate bindings, retain Go-specific schemas and documentation, and adapt new simulator, datastore, and metadata APIs.

Resolve generated constructor and Close method collisions without renaming existing factories. Keep enum and allocation coverage and add simulator RPC and constructor regression checks.

Validation: 96 Go tests and 2,468 native-TLS Rust tests passed. All-features Rust validation is blocked by the bundled aws-lc dependency on this machine. The same three Rust formatting failures also occur before this merge.
Protect receivers and handle arguments throughout FFI calls, serialize
setters, and cancel native futures when Go contexts are canceled.

Preserve empty collections and embedded NULs, pin nested cgo inputs, and
fix CLVM integer allocation and temporary handle cleanup. Add idiomatic
initialism aliases while preserving the existing exported API.

Update documentation and runnable examples, check generated bindings in
CI, and validate tagged release packaging before publishing the module.

Validation on Linux/amd64:
- 107 tests/examples passed with Go 1.26.1 and the race detector.
- 107 tests/examples passed with Go 1.27.1 and cgocheck2.
- 990 concurrency/cancellation stress executions passed.
- go vet, regeneration, formatting, and exported API checks passed.
- Fresh release checkout and independent Go consumer passed.
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.

1 participant