SDK references
Per-language SDK reference for exd-client. The SDKs preserve the single-validator invariant — every implementation FFIs into the same crates/exd-client/ source the server uses, so lint, eval, telemetry, and closure-delta apply behave identically on every runtime. No language-specific reimplementation.
| Language | Package | Status | Reference |
|---|---|---|---|
| Rust | exd-client (crates.io) | shipped | 01-rust.md |
| TypeScript | @exd/client (npm) | shipped | 02-typescript.md |
| Python | exd-client (PyPI) | spec only — not yet implemented | 03-python.md |
| Java | dev.exd:exd-client (Maven) | spec only — not yet implemented | 04-java.md |
The TypeScript SDK consumes the Rust core via WebAssembly (two artifacts: lite + full). The Python SDK consumes it via PyO3 + maturin. The Java SDK consumes it via JNI / Panama. All three FFI surfaces target the same crates/exd-client/ library.
Choosing an SDK shape
| Scenario | SDK shape | Reference |
|---|---|---|
| Trusted backend service that wants in-process evaluation | Rust SDK with namespace_uri(...) or server(...) | 01-rust.md |
| Backend service that can't or won't embed the SDK | None — call POST /evaluate with a namespace-read token | — |
| Browser bundle, public client | TypeScript SDK with @exd/client/remote and a namespace-client token | 02-typescript.md |
| Node service that wants in-process eval + SSE refresh | TypeScript SDK with @exd/client/full | 02-typescript.md |
| Python or Java service | Python / Java SDK (spec only today) | 03-python.md, 04-java.md |
The full deployment-mode picker lives at server-api § Deployment modes.
Cross-runtime conformance
Every conformant SDK runs the parity-fixture suite at fixtures/evaluation-parity.json in CI. A failure in any runtime blocks merge. The fixture-file format is implementer-facing and lives in docs/spec/evaluation-parity.md.
See also
- core-concepts — vocabulary every SDK reference assumes.
- reference/manifest/ — the manifest format every SDK consumes.
- reference/server-api/ — the HTTP surface the SDKs call.
- reference/telemetry/ — the evaluation-record + sink contract every SDK emits against.