Runtime

The Saikuro runtime is a Rust binary. Download a prebuilt binary from the releases page or build from source:

git clone https://github.com/Nisoku/Saikuro.git
cd Saikuro
cargo build --release -p saikuro-runtime

For WASM targets, the runtime compiles to a WebAssembly module:

just wasm-rust-runtime

Language Adapters

TypeScript
Python
C#
Rust
C
C++
npm install @nisoku/saikuro
pnpm add @nisoku/saikuro
yarn add @nisoku/saikuro

Works in Node.js 18+, browsers, and Bun.

pip install saikuro

Requires Python 3.11+.

dotnet add package Saikuro

Requires .NET 8+. Supports Blazor WASM via broadcast channel transport.

[dependencies]
saikuro = "0.1"

Feature flags:

saikuro = { version = "0.1", features = ["storage", "fs-storage"] }
#include "saikuro.h"
// link libsaikuro_c.a

The C API expects a MessagePack-compatible buffer. See the C adapter docs for the full API.

#include "saikuro/saikuro.hpp"
// link libsaikuro_cpp.a

Wraps the C API with RAII types. See the C++ adapter docs.

WASM for the Browser

The TypeScript adapter works in the browser without any WASM compilation. For the runtime itself:

just wasm-all           # build all provider WASM modules
just wasm-rust-runtime  # build the WASM runtime (not included in wasm-all)
just web_demo dev       # build + start the dev server

See WASM Guide for browser integration details.

Verify Installation

TypeScript
Python
import { SaikuroClient, InMemoryTransport } from "@nisoku/saikuro";

// InMemoryTransport lets you test without a runtime
const [p, c] = InMemoryTransport.pair();
console.log("Saikuro types loaded");
from saikuro import SaikuroClient, InMemoryTransport

p, c = InMemoryTransport.pair()
print("Saikuro types loaded")

Next Steps