How the alternatives differ
tarpc
tarpc is the closest alternative: it also
defines services as Rust traits without a separate schema. It focuses on
request/response RPC; a server may keep application state, but calls do not pass
remote channels or object handles. Tarpc provides request contexts with propagated
deadlines and tracing metadata. Remoc propagates cancellation when call futures are
dropped, but does not automatically propagate tracing context.
gRPC, through tonic
tonic implements gRPC for Rust.
A .proto schema defines the service and generates code for each
language. Calls run over HTTP/2, which makes gRPC a good match for cross-language
APIs and infrastructure that routes, measures or limits individual calls. Remoc
instead keeps Rust types as the contract and multiplexes its own channels over the
supplied transport.
Cap'n Proto
Cap'n Proto RPC also lets references
to callable objects travel in messages and supports pipelining dependent calls. Its
schema and capability model work across supported languages. Remoc offers related
patterns using Rust traits and channel endpoints, including
pipelined trait calls, but is limited to Rust peers.