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 | ✓ | ✓ | — | — | Client-only SDK |
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.
Client-Only SDK
Section titled “Client-Only SDK”Use TypeScript if you only need to:
- Connect to EvidentSource from Node.js or browser applications
- Execute state changes and query state views
- Subscribe to database updates
TypeScript does not support building WASM components for server-side execution.
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.