No Glue Code
Write your logic in the language that fits the job. Transit handles serialization, process management, and function discovery automatically.
No Glue Code
Write your logic in the language that fits the job. Transit handles serialization, process management, and function discovery automatically.
Zero Changes
The scanner discovers your existing public functions automatically. No decorators, no annotations, no source modifications.
Optimal Transport
Rust runs in-process via N-API for zero overhead. Java and Python run as resident processes with a binary TCP protocol.
Works Everywhere
Supports Rust, Java, Python, and JavaScript/TypeScript. Works on Linux, macOS, and Windows.
import { transit } from "transit"import { resolve } from "node:path"
const __dirname = import.meta.dirname
const rs = transit.rust(resolve(__dirname, "./rust"))const jv = transit.java(resolve(__dirname, "./java/src/main/java"))const py = transit.python(resolve(__dirname, "./python"))
// Call functions across language boundariesconst rustResult = await rs.processFile({ id: "job-001", bytes: [72, 101, 108] })const javaResult = await jv.handleSpecialized(rustResult)const pythonResult = await py.analyzeData(javaResult)