Skip to content

SDKs

Every EvidentSource SDK covers two concerns:

  1. Client: a typed gRPC client that connects to databases, runs State Changes, and reads State Views and events.
  2. Functions: the library for writing State Change (decide) and State View (evolve) components, compiled to WebAssembly.

Designer can also generate a Rust project from a model; see Generating code.

LanguageWebAssembly toolchainNotes
Rustthe wasm32-wasip2 targetThe reference implementation
GoTinyGo 0.40.1 or later
TypeScriptjcoESM only
Pythoncomponentize-pyIts packages are alpha
.NETcomponentize-dotnet.NET 10 or later

The programming model is the same in each: decide and evolve over typed inputs. Pick the language your team already works in. Rust is the reference implementation, and the other SDKs follow its design.

The SDKs live in evidentsource-sdks, one directory per language. Each has a README with its build and test instructions, and examples under examples/.