Adapters
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, optionaldetails)
The runtime handles routing, schema enforcement, capability checks, and dispatch policy.
Shared model
All adapters expose the same primitives:
call: request/response invocationcast: fire-and-forget invocationstream: server-to-client async sequencechannel: bidirectional async message flowbatch: multiple invocations in one enveloperesource: 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
- TypeScript API reference
- Python API reference
- Rust API reference
- C# API reference
- C API reference
- C++ API reference
Next Steps
- Invocation Primitives: Semantics of each primitive
- Transports: Transport behavior and tradeoffs
- Protocol Reference: Envelope and error format