SDK

SDK Parity & Divergence

Intentional API differences across the four Cuitty SDKs.

SDK Parity & Divergence

The Cuitty SDKs share a wire protocol but each takes the idiomatic shape of its language. This page documents the intentional differences.

Capability matrix

FeatureTypeScriptPythonGoRust
Async-firstImplicit (Promise)Sync (async on roadmap)Sync, ctx-awareAsync (Tokio)
Plugin modelclient.use(plugin)client.audit, client.logsclient.Audit, client.Logsclient.audit(), client.logs()
Path B retryYes (5xx + 429)Yes (5xx + 429)Yes (5xx + 429)Yes (5xx + 429)
Idempotency keysYes (UUID v4)YesYesYes
Hono adapterYesn/an/an/a
Pino bridgeYesn/a (stdlib logging adapter on roadmap)n/a (slog)n/a (tracing)
Concurrency-safeYesYesYesYes (Arc-cloned client)

Things that ARE the same across all four SDKs

If your code depends on something that’s the same across SDKs but isn’t on this list, it might still be safe — but it’s not promised. Open an issue and we’ll add it (or document why it’s not promised).

Where to find authoritative behavior

The wire protocol is documented in packages/wire-protocol/openapi.yaml. The SDK-specific READMEs document divergences from that protocol in their “Spec Drift” sections.

Live SDK-by-SDK benchmarks: https://benchmarks.cuitty.com/sdks.