Skip to content

SDKs

Every EvidentSource SDK covers three concerns:

  1. Client — a typed gRPC client for issuing commands, reading state views, and subscribing to events.
  2. Functions — the scaffolding to write State Change (decide) and State View (evolve) components that compile to WebAssembly.
  3. Codegen — types generated from your project’s schemas (see Defining schemas).
LanguageClientFunctionsNotes
Rust✅ stable✅ stableReference implementation — most complete
Go✅ stable✅ stableRequires TinyGo 0.40.1+ for WASM
TypeScript✅ stable✅ stableESM-only; uses jco for WASM
Python✅ stable🚧 betaUses componentize-py
.NET✅ stable✅ stable.NET 10+; WASM compilation is Windows-only at time of writing

The programming model is identical everywhere — you write decide and evolve as pure functions of typed inputs. Pick the language your team already lives in. Rust has the deepest ergonomics; TypeScript and Python are fastest for exploratory work; Go is the most straightforward for server-side integration.

Each SDK lives under evidentsource/sdks/<language>/ in the monorepo. Each has its own README with language-specific build and test instructions.