After months of work, I just released the first public version of Saikuro, a cross-language invocation fabric that lets different languages call each other without RPC boilerplate.

TypeScript, Python, Rust, and C# adapters, all talking to a shared Rust runtime.

#rustlang #typescript #python #dotnet #opensource

Why Rust for the runtime?

- Portable (runs anywhere)
- Strongly typed
- Predictable under concurrency
- Safe to embed
- Fast enough to sit in the middle

Basically: "I want this to run everywhere and not explode"

#rustlang #systemsprogramming

What it looks like in practice:

TypeScript: provider.register("math.add", (a, b) => a + b)

Python: client.call("math.add", [10, 32]) returns 42

No HTTP server. No IDL file. No stub generator. Just function calls across languages.

Docs: https://nisoku.github.io/Saikuro/docs/
GitHub: https://github.com/Nisoku/Saikuro

Still early but core pieces work end-to-end. Feedback and "why did you design it this way" discussions welcome.

#devtools #opensource

Saikuro : Saikuro

Cross-language invocation fabric for seamless multi-runtime integration

Saikuro

@nellowtcs wow, this looks really cool!

Your TCP example is neat, specially if I can make it work across the network. But your In-memory example is killer! Have the process running in the same space and have two separate programming languages, each with their own capabilities, talk to each other. Well done!

@nitinkhanna Thank you!
Yeah, it's especially useful for WASM applications, since I can replace, for example, JSImport/JSExport, with Saikuro and not have to deal with interop problems!
@nellowtcs omg that's brilliant!!
@nitinkhanna Thanks! (I speak from experience haha)