vgi-rpc
TypeScript RPC powered by Apache Arrow. Define typed methods. Serve and consume over stdio or HTTP. No code generation, no schema files.
Arrow-native end to end.
Data stays in columnar format from handler to wire. No JSON serialization, no encoding overhead.
Server and client, three transports.
Serve and consume methods over subprocess pipes, raw streams, or HTTP. Same API everywhere.
Runtime introspection built in.
Any vgi-rpc client discovers your methods, their schemas, and their docs automatically.
A complete RPC server in 8 lines
const protocol = new Protocol("Calculator");
protocol.unary("add", {
params: { a: float, b: float },
result: { result: float },
handler: async ({ a, b }) => ({ result: a + b }),
});
new VgiRpcServer(protocol).run(); $ vgi-rpc call add a=2 b=3
{result: 5.0}