SDKs
Every EvidentSource SDK covers two concerns:
- Client: a typed gRPC client that connects to databases, runs State Changes, and reads State Views and events.
- 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.
Languages
Section titled “Languages”| Language | WebAssembly toolchain | Notes |
|---|---|---|
| Rust | the wasm32-wasip2 target | The reference implementation |
| Go | TinyGo 0.40.1 or later | |
| TypeScript | jco | ESM only |
| Python | componentize-py | Its packages are alpha |
| .NET | componentize-dotnet | .NET 10 or later |
Picking a language
Section titled “Picking a language”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.
Getting started
Section titled “Getting started”- Connecting a client: Connecting with an SDK
- A complete example: Set up the TodoMVC example
- Issuing commands: Issuing commands
Source
Section titled “Source”The SDKs live in evidentsource-sdks, one directory per language. Each has a README with its build and test instructions, and examples under examples/.