// the find
google/tarpc
An RPC framework for Rust with a focus on ease of use.
tarpc is a Rust RPC framework built on Tokio that defines services as annotated traits — no .proto files, no separate codegen step. The macro expands into client/server types you implement directly. Aimed at Rust services that want typed RPC without leaving the language.
Schema-in-code approach means the compiler catches client/server mismatches at build time, not at runtime. Cascading cancellation is genuinely well-designed — dropping a future propagates cancellation down the entire call chain. Deadline propagation across hops is built in and correct (remaining time, not original deadline). Transport is properly abstracted: swap in TLS, custom framing, or an in-process channel without touching service logic.
Still at 0.x versioning after years of use, which signals the API isn't considered stable — adopters have hit breaking changes between minor versions. No cross-language story: if any part of your system isn't Rust, you're out. The server startup boilerplate (BaseChannel, execute, for_each, tokio::spawn) is awkward and the README example doesn't hide this well. No built-in service discovery, health checks, or load balancing beyond a basic client stub — you bring all of that yourself.