SDKs
EvidentSource provides official SDKs for popular programming languages. Each SDK includes libraries for building client applications and server-side components.
SDK Components
Section titled “SDK Components”Each SDK provides up to three libraries:
| Component | Purpose |
|---|---|
| Core | Foundation types: events, selectors, constraints, identifiers |
| Client | gRPC connectivity to EvidentSource servers |
| Functions | Server Functions library for building WASM state changes and state views |
SDK Comparison
Section titled “SDK Comparison”| SDK | Status | Core | Client | Functions | WASM | Notes |
|---|---|---|---|---|---|---|
| Rust | Reference | ✓ | ✓ | ✓ | ✓ | Reference implementation |
| Go | Stable | ✓ | ✓ | ✓ | ✓ | Requires TinyGo 0.40.1+ |
| .NET | Stable | ✓ | ✓ | ✓ | Windows | macOS/Linux WASM coming |
| Python | Beta | ✓ | ✓ | ✓ | ✓ | Uses componentize-py |
| TypeScript | Stable | ✓ | ✓ | ✓ | ✓ | Uses jco for WASM |
Choosing an SDK
Section titled “Choosing an SDK”Full SDKs (Core + Client + Functions)
Section titled “Full SDKs (Core + Client + Functions)”Use Rust, Go, .NET, or Python if you need to build:
- State Changes - WASM components that handle commands and emit events
- State Views - WASM components that materialize views from events
- Client applications - Applications that connect to EvidentSource servers
Rust is the reference implementation - all other SDKs follow its patterns and API design.
Choosing Your Language
Section titled “Choosing Your Language”All five SDKs support:
- Building State Changes - WASM components that handle commands and emit events
- Building State Views - WASM components that materialize views from events
- Building Client applications - Applications that connect to EvidentSource servers
Choose based on your team’s preferred language and ecosystem:
- Rust is the reference implementation with the most mature tooling
- Go and TypeScript offer familiar developer experience for web backends
- .NET is ideal for enterprise environments (WASM compilation currently Windows-only)
- Python is great for data-centric applications (Server Functions in beta)
Quick Links
Section titled “Quick Links”- Overview - SDK components, requirements, quick start
- Getting Started - Build your first application
- Overview - SDK components, requirements, quick start
- Getting Started - Build your first application
TypeScript
Section titled “TypeScript”- Overview - SDK components, requirements, quick start
- Getting Started - Build your first application
- Overview - SDK components, requirements, quick start
- Getting Started - Build your first application
Python
Section titled “Python”- Overview - SDK components, requirements, quick start
- Getting Started - Build your first application
Open Source
Section titled “Open Source”All EvidentSource SDKs are open source under the Apache 2.0 and MIT licenses. Source code is available at github.com/evidentsystems/evidentsource-sdks.