SDK reference
Three SDKs ship with Phase-8 (Node/TS is deferred to Phase 9 per ADR-001 / D-6).
Rust — edssa-core
The native engine crate. Anything you can do at the CE binary layer, you can do directly from Rust.
cargo add edssa-core
#![allow(unused)]
fn main() {
use edssa_core::{verify_token, ActiveEdssaState, encode_sub_id};
fn check(token: &[u8; 64], state: &ActiveEdssaState<64>) -> bool {
verify_token(token, state).accepted
}
}
- Source:
code/edssa-core/. - Feature flags: the
enterpriseumbrella (default-on) gates theoracle,orbit,relay,swarm, andweavermodules (plus their re-exports, e.g.MedianOf3). CE consumers should setdefault-features = false; the CE-visible surface (verify_token,construct_token,ActiveEdssaState,EdssaCore,EdssaRouter,RatchetState,encode_sub_id/decode_sub_id,SUB_ID_SLOTS,SUB_ID_MAX) stays available. - Stability: the engine API (
verify_token,construct_token,ActiveEdssaState,EdssaCore,EdssaRouter) is the patent surface. Other modules are evolving and may change between minor versions.
Go — github.com/edssa-io/edssa-go
cgo binding over edssa-core-ffi (Phase-8 batch 4 substrate).
The Go SDK statically links the C ABI, so consumers don’t ship
the edssa-core-ffi shared library separately.
import "github.com/edssa-io/edssa-go"
state, err := edssa.NewStateFromSeed(seed, edssa.Balanced)
if err != nil { ... }
defer state.Close()
ok := state.Verify(token)
- Source:
github.com/edssa-io/edssa-go(operator-side). - Underlying C ABI:
code/edssa-core-ffi/in this repo. The committed header (include/edssa_core.h) is the source of truth for the Go binding.
Python — pip install edssa
PyO3 wrapper. Same engine, same wire format.
import edssa
state = edssa.State.from_seed(seed, preset="balanced")
ok = state.verify(token)
- Source:
github.com/edssa-io/edssa-py(operator-side). - Ships
manylinux+ macOS wheels for CPython 3.10+.
Node / TypeScript
Deferred to Phase 9 (ADR-001 / D-6).
Choosing between SDKs
| Use case | Best fit |
|---|---|
| Rust microservice / Tokio runtime | edssa-core directly (no SDK shim) |
| Go service, gRPC interceptor | edssa-go |
| Python web API (FastAPI / Django / Flask) | edssa-py |
| Polyglot service mesh | Run the CE binary as a sidecar; let the SDKs handle minting only |
The CE binary is the integration story for non-Rust services that don’t want a build-time SDK dep — drop the sidecar in, point your service at it, and your service stays language-agnostic.