Wire size
Serialized message body in bytes — same logical data, protobuf vs JSON. Smaller is better.
Latency
Sequential calls per payload size. p50 solid, p99 faded. Lower is better.
Throughput
8 concurrent clients × 5 seconds. Higher is better.
gRPC vs REST with production-realistic structured data — catalog records (10 fields each) over protobuf (tonic) vs JSON (axum), in Rust. Payloads of 10, 500, and 5000 items. Every number below was measured on the same 2-core VM. No simulations, no estimates.
Serialized message body in bytes — same logical data, protobuf vs JSON. Smaller is better.
Sequential calls per payload size. p50 solid, p99 faded. Lower is better.
8 concurrent clients × 5 seconds. Higher is better.