grpc/grpc-rust

GitHub: grpc/grpc-rust

Stars: 12254 | Forks: 1218

![](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/339d17ec03025427.svg) A rust implementation of [gRPC], a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. [![Crates.io](https://img.shields.io/crates/v/tonic)](https://crates.io/crates/tonic) [![Documentation](https://docs.rs/tonic/badge.svg)](https://docs.rs/tonic) [![Crates.io](https://img.shields.io/crates/l/tonic)](LICENSE) [Examples] | [Website] | [Docs] | [Chat][discord] ## Overview [`tonic`] is composed of three main components: the generic gRPC implementation, the high performance HTTP/2 implementation and the codegen powered by [`prost`]. The generic implementation can support any HTTP/2 implementation and any encoding via a set of generic traits. The HTTP/2 implementation is based on [`hyper`], a fast HTTP/1.1 and HTTP/2 client and server built on top of the robust [`tokio`] stack. The codegen contains the tools to build clients and servers from [`protobuf`] definitions. ## Features - Bi-directional streaming - High performance async io - Interoperability - TLS backed by [`rustls`] - Load balancing - Custom metadata - Authentication - Health Checking ## Getting Started - The [`helloworld`][helloworld-tutorial] tutorial provides a basic example of using `tonic`, perfect for first time users! - The [`routeguide`][routeguide-tutorial] tutorial provides a complete example of using `tonic` and all its features. Examples can be found in [`examples`] and for more complex scenarios [`interop`] may be a good resource as it shows examples of many of the gRPC features. ### Rust Version `tonic`'s MSRV is `1.88`. ### Dependencies [`tonic-build`] uses `protoc` [Protocol Buffers compiler] in some APIs which compile Protocol Buffers resource files such as [`tonic_build::compile_protos()`]. ## Getting Help First, see if the answer to your question can be found in the API documentation. If the answer is not there, there is an active community in the [Tonic Discord channel][discord]. We would be happy to try to answer your question. If that doesn't work, try opening an [issue] with the question. ## Project Layout - [`tonic`]: Generic gRPC and HTTP/2 client/server implementation. - [`tonic-build`]: [`prost`] based service codegen. - [`tonic-types`]: [`prost`] based grpc utility types including support for gRPC Well Known Types. - [`tonic-health`]: Implementation of the standard [gRPC health checking service][healthcheck]. Also serves as an example of both unary and response streaming. - [`tonic-reflection`]: A tonic based gRPC reflection implementation. - [`examples`]: Example gRPC implementations showing off tls, load balancing and bi-directional streaming. - [`interop`]: Interop tests implementation. ## License This project is licensed under the [MIT license](LICENSE). ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tonic by you, shall be licensed as MIT, without any additional terms or conditions.
标签:通知系统