A language-agnostic, easy-to-use IPC library for cross-language integration.
Saikuro lets you expose functions written in one language and call them transparently from any other supported language, with a shared typed schema, capability enforcement, and pluggable transports (TCP, Unix socket, WebSocket, or in-memory).
(Saikuro currently is not added to package managers yet. It will be added soon, once I finalize a few things!)
| Language | Package name | Status |
|---|---|---|
| Rust | (TBD) | ✅ |
| TypeScript | (TBD) | ✅ |
| Python | (TBD) | ✅ |
| C# | (TBD) | ✅ |
| C | (TBD) | ✅ |
| C++ | (TBD) | ✅ |
use saikuro::{Provider, Result, Value};
#[tokio::main]
async fn main() -> Result<()> {
let mut provider = Provider::new("math");
provider.register("add", |args: Vec<Value>| async move {
let a = args[0].as_i64().unwrap_or(0);
let b = args[1].as_i64().unwrap_or(0);
Ok(serde_json::json!(a + b))
});
provider.serve("tcp://127.0.0.1:7700").await
}
import { SaikuroClient } from "@nisoku/saikuro";
const client = await SaikuroClient.connect("tcp://127.0.0.1:7700");
const result = await client.call("math.add", [1, 2]);
console.log(result); // 3
from saikuro import SaikuroClient
async def main():
async with SaikuroClient.connect("tcp://127.0.0.1:7700") as client:
result = await client.call("math.add", [1, 2])
print(result) # 3
Build/
Cargo.toml # Rust workspace root
crates/ # Internal library crates
saikuro-core/ Protocol types, envelope, error
saikuro-schema/ Schema registry & validation
saikuro-transport/ Transport backends (TCP, Unix, WebSocket, InMemory, WasmHost)
saikuro-router/ Invocation router & provider registry
saikuro-runtime/ Embeddable runtime (includes standalone server binary)
saikuro-exec/ Execution backends (Tokio, WASM, Embassy)
saikuro-storage/ Storage backends (InMemory, SQLite, Sled, IndexedDB, OPFS, …)
saikuro-codegen/ Binding code-generator for all 6 languages
tests/ # Rust integration tests
adapters/
rust/ Rust adapter (saikuro crate)
typescript/ TypeScript/JS adapter
python/ Python adapter
csharp/ C# adapter
c/ C FFI adapter
cpp/ C++ RAII adapter
Demo/ Browser WASM demo (Rust, C, C++, Python, C# providers)
Docs/ Documentation site
Examples/ Standalone example projects
Full documentation is available at the project's GitHub Pages site:
Repository docs sources:
Docs/docs/index.mdDocs/docs/adapters/index.mdDocs/docs/guide/Contributions are welcome! Here’s how to get started:
git checkout -b feature/name).git commit -m "Description of change").git push origin feature/name).Please make sure your changes follow the existing style and that all tests pass before submitting.
See CONTRIBUTING for more details.
Apache-2.0. See LICENSE.
$ claude mcp add Saikuro \
-- python -m otcore.mcp_server <graph>