Skip to content

feat: add go client#731

Open
sonicfromnewyoke wants to merge 2 commits intorpcpool:masterfrom
sonicfromnewyoke:sonic/go-client
Open

feat: add go client#731
sonicfromnewyoke wants to merge 2 commits intorpcpool:masterfrom
sonicfromnewyoke:sonic/go-client

Conversation

@sonicfromnewyoke
Copy link
Copy Markdown

Problem

The repo ships first-class SDKs for Rust (yellowstone-grpc-client) and Node.js (yellowstone-grpc-client-nodejs), but Go users only had examples/golang - a raw grpc-go + proto copy with no library.
Every Go consumer had to reimplement TLS setup, x-token/x-request-snapshot injection, keepalive defaults, endpoint parsing, health checks, etc. and vendor their own generated proto.

Summary of Changes

  • New library yellowstone-grpc-client-go with:
  • Builder + Client mirroring the Rust
  • Typed wrappers for every unary RPC + Subscribe / SubscribeDeshred
  • HealthCheck / HealthWatch against geyser.Geyser
  • Auth injected via Chain* interceptors so user dial options can't clobber it

supress #728

cc @fanatid @linuskendall

@leafaar
Copy link
Copy Markdown
Contributor

leafaar commented Apr 19, 2026

Niceee

@WilfredAlmeida
Copy link
Copy Markdown
Contributor

Hi @sonicfromnewyoke love the contribution. Can you add an action to run tests, build/compile the SDK if needed, and run the examples as a form of integration tests?

I'll go through the code in the meanwhile.

Thanks again!

@sonicfromnewyoke
Copy link
Copy Markdown
Author

Can you add an action to run tests, build/compile the SDK if needed, and run the examples as a form of integration tests?

added tests step in CI for go-client and alternative vtproto, because a canonical one uses reflections (not suitable for geyser load)

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.

3 participants