SDKs

Official client SDKs in four languages. All ship from the AllSource monorepo and track the same version as the gateway and Core.

Rust

v0.20.1
crates.io

First-class client. Async via tokio, both an HTTP `QueryClient` for the gateway and a fast in-process `EventStore` for embedded mode. The SDK ships from the same monorepo as Core, so it's always paired with a known-good release.

cargo add allsource
View source

TypeScript

v0.20.1
GitHub

Type-safe client for the public gateway. WebSocket streaming, projection subscriptions, and full TypeScript types for every event in your tenant. Distributed via the GitHub registry — install directly from the monorepo.

bun add github:all-source-os/all-source#main --filter @allsource/client
View source

Python

v0.20.1
GitHub

Synchronous and asynchronous clients (httpx-based). Pydantic models for events and projections. Distributed via the GitHub registry rather than PyPI so it stays version-locked with the gateway you're connecting to.

uv pip install git+https://github.com/all-source-os/all-source#subdirectory=sdks/python-client
View source

Go

v0.20.1
GitHub

Idiomatic Go client. Standard library `http.Client` under the hood, context-aware everywhere, zero exotic dependencies. Pulled directly from the source repo via Go modules.

go get github.com/all-source-os/all-source/sdks/go
View source

Why some SDKs aren't on npm/PyPI

Only the Rust SDK is published to crates.io. The TypeScript, Python, and Go SDKs are distributed via GitHub directly — that keeps each install version-locked to a specific gateway release, avoids a long tail of package-registry yanks during early development, and means every consumer is, by construction, looking at the canonical source. We may publish to npm/PyPI/pkg.go.dev once the gateway API surface freezes.