Skip to content

Native Go SDK #1019

Description

@userFRM

A first-class Go SDK, written in pure Go rather than a cgo wrapper over another runtime.

Why native

cgo would cost Go the things that make it worth using: cross-compilation to a single static binary, the goroutine scheduler under streaming load, and a clean go get with no toolchain to install. It would also buy almost no speed, because Go decodes the wire about as fast as a foreign-call boundary costs to cross. The right shape for Go is a native peer of the existing SDKs, not a binding.

Scope

  • A native Go client to the same data services the other SDKs use.
  • The same method names and shapes as the Rust, Python, TypeScript, and C++ SDKs, held to the same machine-enforced cross-SDK parity guarantee.
  • Idiomatic streaming over goroutines and channels.
  • go get-able and cross-compilable, with no native toolchain required to build or run.

Context

The earlier Go binding (#481) was FFI-based and was removed. This tracks a native replacement done the right way for the language.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestroadmapTracked on the public roadmap

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions