Skip to content

SDKs

EvidentSource provides official SDKs for popular programming languages. Each SDK includes libraries for building client applications and server-side components.

Each SDK provides up to three libraries:

ComponentPurpose
CoreFoundation types: events, selectors, constraints, identifiers
ClientgRPC connectivity to EvidentSource servers
FunctionsServer Functions library for building WASM state changes and state views
SDKStatusCoreClientFunctionsWASMNotes
RustReferenceReference implementation
GoStableRequires TinyGo 0.40.1+
.NETStableWindowsmacOS/Linux WASM coming
PythonBetaUses componentize-py
TypeScriptStableClient-only SDK

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.

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.

All EvidentSource SDKs are open source under the Apache 2.0 and MIT licenses. Source code is available at github.com/evidentsystems/evidentsource-sdks.