Adapters are the language boundary for Saikuro. They expose a familiar API in each language while speaking the same wire protocol.

Choose a language

Adapter responsibilities

Each adapter handles:

  • Envelope encoding/decoding and transport I/O
  • Provider and client ergonomics for its language
  • Stream and channel state at the caller API boundary
  • Consistent error mapping (code, message, optional details)

The runtime handles routing, schema enforcement, capability checks, and dispatch policy.

Shared model

All adapters expose the same primitives:

  • call: request/response invocation
  • cast: fire-and-forget invocation
  • stream: server-to-client async sequence
  • channel: bidirectional async message flow
  • batch: multiple invocations in one envelope
  • resource: handle-based stateful operations

Capability parity

Adapter Call Cast Stream Channel Batch Resource Schema extraction
TypeScript Yes Yes Yes Yes Yes Yes Yes
Python Yes Yes Yes Yes Yes Yes Yes
Rust Yes Yes Yes Yes Yes Yes Manual/runtime metadata
C# Yes Yes Yes Yes Yes Yes Yes
C Yes Yes Yes Yes Yes Yes Via codegen/tooling
C++ Yes Yes Yes Yes Yes Yes saikuro-cpp-schema

Examples by adapter

API references by adapter

Next Steps