SDKs
Status: TypeScript SDK is fixture-rehearsed against the live cloud. Rust SDK is a local fixture client (no HTTP).
The Gestalt SDK is the membrane from a developer’s perspective. It is explicitly not a workflow library, an ORM, or a permission layer. It exposes typed envelopes and shape-correct receipts for the cloud membrane.
Languages
Section titled “Languages”- TypeScript — calls the cloud over HTTP. Includes
a built-in
createFixtureFetch()for unit tests and offline work. - Rust — today, a local fixture client only (no HTTP). Useful for embedding Gestalt-shaped reasoning into Rust binaries.
- Fixture mode — how to develop without running the cloud at all.
What lives in the SDK
Section titled “What lives in the SDK”typed request envelopes IntentPrecheckRequest, ProofRequest, etc.typed response envelopes MembraneResponse<T>local receipt verification (shape-only) verifyFixtureReceiptfixture simulation (TS) createFixtureFetchproof disclosure request construction ProofRequest, ProofBundleRequestWhat does not live in the SDK
Section titled “What does not live in the SDK”The SDK does not own admission, key custody, package activation, Pendulum dispatch, proof issuance, or operator audit. Those live on the cloud Geist side and are reachable only through their membrane operations.
The SDK also does not connect directly to SurrealDB, sign atoms, or mint receipts. Those would all violate the closed runtime boundary.
Versioning
Section titled “Versioning”The SDKs track the membrane contract version. Today the contract is
0.0.1-fixture. Both SDKs follow the same versioning. Breaking
changes will bump the contract version and the SDK package versions
together.
Choosing a language
Section titled “Choosing a language”| Use TypeScript when | Use Rust when |
|---|---|
| You are building a browser or Node Koerper | You are embedding Gestalt logic into a Rust service |
| You want offline fixture testing without HTTP | You are operating a service that talks to Gestalt internally |
| You want type-checked membrane envelopes in your frontend | You want to share types with gestalt-core and other crates |
For most integrators, TypeScript is the right choice today.