finds.dev← search

// the find

grpc/grpc-rust

★ 12,367 · Rust · MIT · updated Jul 2026

A native gRPC client & server implementation with async/await support.

tonic is the de facto gRPC library for Rust, built on tokio/hyper with prost for protobuf codegen. It covers the full gRPC surface: unary, client/server/bidi streaming, TLS, health checking, reflection, interceptors, and load balancing. If you're writing a Rust service that needs to talk gRPC, this is what you use.

The HTTP/2 layer is hyper under the hood, which means it inherits a mature, well-tested transport rather than reinventing one. The codegen story via tonic-build is solid — drop a .proto file, call compile_protos() in build.rs, and you get typed client/server stubs with zero boilerplate. The examples directory is unusually good: authentication, interceptors, compression, JSON codec, custom load balancing, UDS — real scenarios, not just hello world. The modular crate split (tonic, tonic-build, tonic-health, tonic-reflection) means you only pull in what you need.

The master branch note at the top of the README is a red flag — breaking changes in flight mean the docs and crates.io version may diverge until the release lands. gRPC-Web support exists in examples but isn't a first-class crate, so browser clients need a proxy or a third-party shim. Service config (retry policy, hedging) is parsed but enforcement is incomplete compared to the reference Java/Go implementations, which will surprise anyone migrating from those ecosystems. protoc is a hard build dependency for tonic-build's compile_protos, which adds friction in hermetic build environments where you can't just apt-get install protobuf-compiler.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →