A remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is written as if it were a normal (local) procedure call, without the programmer explicitly writing the details for the remote interaction.
RPCs are a form of inter-process communication (IPC), in that different processes have different address spaces.
-
How Netflix increased developer productivity and defeated the thundering herd with gRPC
-
- Simple Object Access Protocol
-
RPC URI-Tunneling
Rust:
- tarpc: An RPC framework for Rust with a focus on ease of use.
- Volo: Rust RPC framework with high-performance and strong-extensibility for building micro-services. (China)
- ESSRPC: Electron's Super Simple RPC
Benchmarks:
- RPC Benchmark
- rpclib benchmarks
- RPC benchmark (and Inverted Json) | by Oleg Nechaev | ITNEXT
- Scaling up REST versus gRPC Benchmark Tests | by Ian Gorton | Medium
- gRPC vs REST speed comparison
- 2023-09 Like for Like HTTP vs gRPC Comparison : r/rust
- JSON vs Protobuf
-
Where gRPC shines is long-running batches/streams of requests. With either API, you're likely to have keep-alives and streaming to avoid network-level overhead, but gRPC generally makes it relatively efficient and straightforward to do stream processing with back-pressure and optional separation of the request stream from the response stream.
Leveling Up Reddit's Core - The Transition from Thrift to gRPC : RedditEng