SDK matrix · TS · Py · Rust · Go
Four SDKs. One protocol. Apache 2.0.
Official client libraries for the languages our design-partner engineering teams already use. Protocol-identical with the REST and gRPC surfaces — anything the wire can express, the SDK can express.
- SDKs
- 4 · TS · Py · Rust · Go
- License
- Apache 2.0
- Release cadence
- Monthly · SemVer
- Open source
- github.com/wavestar
How we build SDKs
Four principles
Every SDK is built the same way. This page explains how, so you can predict the behaviour of any SDK you pick up.
- 01
Generated from one protobuf source
The shared protobuf files at github.com/wavestar/proto are the single source of truth. Every SDK regenerates from that source on every release. Breaking changes are impossible between SDKs of the same protocol version. - 02
Idiomatic, not mechanical
Each SDK feels native to its language. TypeScript uses Promises and discriminated unions. Python uses async and dataclasses. Rust uses builder patterns and Result. Go uses context.Context and explicit error returns. - 03
Exact decimal arithmetic everywhere
No SDK leaks floating-point into your business logic. TypeScript uses decimal.js, Python uses Decimal, Rust uses rust_decimal, Go uses apd. Orbital quantities and money always hit the wire with full precision. - 04
OpenTelemetry by default
Every SDK emits OpenTelemetry spans for every API call. Exporters are pluggable. The default tracer ships disabled; you opt in with one configuration flag, and your traces work with any OTLP collector.
TypeScript
@wavestar/sdk
Package
- Package name
@wavestar/sdk- Current version
- 0.4.1
- Node support
- 20.x · 22.x LTS
- Bun support
- 1.1+
- Deno support
- 1.44+
- Decimal library
decimal.js- Source
- github.com/wavestar/sdk-typescript
Install
bash
pnpm add @wavestar/sdk
# Browser-safe subset
pnpm add @wavestar/sdk-edgeInitialise
typescript
import { WavestarClient } from "@wavestar/sdk";
const ws = new WavestarClient({
apiKey: process.env.WAVESTAR_KEY!,
environment: "sandbox",
});Python
wavestar
Package
- Package name
wavestar- Current version
- 0.4.1
- Python support
- 3.12+
- Async
- async/await native
Sync wrapper available via WavestarSync.
- Decimal library
decimal.Decimal- Type hints
- Full · mypy --strict clean
- Source
- github.com/wavestar/sdk-python
Install
bash
pip install wavestar
# or
uv add wavestarInitialise
python
from wavestar import WavestarClient
import os
ws = WavestarClient(
api_key=os.environ["WAVESTAR_KEY"],
environment="sandbox",
)Rust
wavestar
Crate
- Crate name
wavestar- Current version
- 0.4.1
- MSRV
- Rust 1.78
- Async runtime
tokio- Decimal library
rust_decimal- gRPC client
tonic- Source
- github.com/wavestar/sdk-rust
Install
bash
cargo add wavestar
# With TLS feature
cargo add wavestar --features rustls-tlsInitialise
rust
use wavestar::{Client, Environment};
let ws = Client::builder()
.api_key(std::env::var("WAVESTAR_KEY")?)
.environment(Environment::Sandbox)
.build()?;Go
wavestar-go
Module
- Module path
github.com/wavestar/wavestar-go- Current version
- v0.4.1
- Go support
- 1.22+
- Context-aware
- Yes · every method takes context.Context
- Decimal library
github.com/cockroachdb/apd- gRPC client
google.golang.org/grpc- Source
- github.com/wavestar/sdk-go
Install
bash
go get github.com/wavestar/wavestar-goInitialise
go
import wavestar "github.com/wavestar/wavestar-go"
ws, err := wavestar.New(wavestar.Config{
APIKey: os.Getenv("WAVESTAR_KEY"),
Environment: wavestar.Sandbox,
})Release cadence
How and when SDKs update
- 01
Monthly minor releases
A minor version on the first Tuesday of every month, covering schema additions, bug fixes, and performance improvements. Fully backwards-compatible inside a major version. - 02
Major versions signalled 90 days ahead
A major version is announced in the changelog, the developer newsletter, and directly by email to registered integrators 90 days before release. Deprecated fields ship for one more major window. - 03
Beta channel
Prerelease versions live on the beta channel for two weeks before promotion. Integrators running beta provide feedback; we fix and ship before the minor lands on stable. - 04
LTS policy
The most recent major version of each SDK is always supported. The prior major version receives critical security patches for 12 months after the successor is released.
Language missing?
We build community SDKs around demand.
If you are building on Wavestar and your team uses Elixir, Kotlin, or another language not in the matrix — email devsupport@wavestar.space with your use case. We co-invest in community SDKs where there is a clear integrator commitment.