{"id":13460361,"url":"https://github.com/hyperium/tonic","last_synced_at":"2025-05-12T18:21:29.218Z","repository":{"id":37547122,"uuid":"201517171","full_name":"hyperium/tonic","owner":"hyperium","description":"A native gRPC client \u0026 server implementation with async/await support.","archived":false,"fork":false,"pushed_at":"2025-05-05T14:56:37.000Z","size":82447,"stargazers_count":10812,"open_issues_count":287,"forks_count":1068,"subscribers_count":78,"default_branch":"master","last_synced_at":"2025-05-05T15:49:59.455Z","etag":null,"topics":["async","grpc","proto","rpc","rust"],"latest_commit_sha":null,"homepage":"https://docs.rs/tonic","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-09T17:59:37.000Z","updated_at":"2025-05-05T15:15:28.000Z","dependencies_parsed_at":"2023-09-22T00:25:41.121Z","dependency_job_id":"30ca2ccd-091b-4720-bdfb-a5c21a886208","html_url":"https://github.com/hyperium/tonic","commit_stats":{"total_commits":1078,"total_committers":263,"mean_commits":4.098859315589354,"dds":0.6975881261595547,"last_synced_commit":"eaa81dd40212a78b2f7c1136d251b789d0cfb088"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperium%2Ftonic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperium%2Ftonic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperium%2Ftonic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperium%2Ftonic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperium","download_url":"https://codeload.github.com/hyperium/tonic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253795172,"owners_count":21965490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","grpc","proto","rpc","rust"],"created_at":"2024-07-31T10:00:40.431Z","updated_at":"2025-05-12T18:21:29.197Z","avatar_url":"https://github.com/hyperium.png","language":"Rust","readme":"![](https://github.com/hyperium/tonic/raw/master/.github/assets/tonic-banner.svg?sanitize=true)\n\nA rust implementation of [gRPC], a high performance, open source, general\nRPC framework that puts mobile and HTTP/2 first.\n\n[`tonic`] is a gRPC over HTTP/2 implementation focused on high performance, interoperability, and flexibility. This library was created to have first class support of async/await and to act as a core building block for production systems written in Rust.\n\n[![Crates.io](https://img.shields.io/crates/v/tonic)](https://crates.io/crates/tonic)\n[![Documentation](https://docs.rs/tonic/badge.svg)](https://docs.rs/tonic)\n[![Crates.io](https://img.shields.io/crates/l/tonic)](LICENSE)\n\n\n[Examples] | [Website] | [Docs] | [Chat][discord]\n\n## Overview\n\n[`tonic`] is composed of three main components: the generic gRPC implementation, the high performance HTTP/2\nimplementation and the codegen powered by [`prost`]. The generic implementation can support any HTTP/2\nimplementation and any encoding via a set of generic traits. The HTTP/2 implementation is based on [`hyper`],\na fast HTTP/1.1 and HTTP/2 client and server built on top of the robust [`tokio`] stack. The codegen\ncontains the tools to build clients and servers from [`protobuf`] definitions.\n\n## Features\n\n- Bi-directional streaming\n- High performance async io\n- Interoperability\n- TLS backed by [`rustls`]\n- Load balancing\n- Custom metadata\n- Authentication\n- Health Checking\n\n## Getting Started\n\n- The [`helloworld`][helloworld-tutorial] tutorial provides a basic example of using `tonic`, perfect for first time users!\n- The [`routeguide`][routeguide-tutorial] tutorial provides a complete example of using `tonic` and all its features.\n\nExamples can be found in [`examples`] and for more complex scenarios [`interop`]\nmay be a good resource as it shows examples of many of the gRPC features.\n\n### Rust Version\n\n`tonic`'s MSRV is `1.75`.\n\n### Dependencies\n\n[`tonic-build`] uses `protoc` [Protocol Buffers compiler] in some APIs which compile Protocol Buffers resource files such as [`tonic_build::compile_protos()`].\n\n[Protocol Buffers compiler]: https://protobuf.dev/downloads/\n[`tonic_build::compile_protos()`]: https://docs.rs/tonic-build/latest/tonic_build/fn.compile_protos.html\n\n## Getting Help\n\nFirst, see if the answer to your question can be found in the API documentation.\nIf the answer is not there, there is an active community in\nthe [Tonic Discord channel][discord]. We would be happy to try to answer your\nquestion. If that doesn't work, try opening an [issue] with the question.\n\n[issue]: https://github.com/hyperium/tonic/issues/new/choose\n\n## Project Layout\n\n- [`tonic`]: Generic gRPC and HTTP/2 client/server implementation.\n- [`tonic-build`]: [`prost`] based service codegen.\n- [`tonic-types`]: [`prost`] based grpc utility types including support for gRPC Well Known Types.\n- [`tonic-health`]: Implementation of the standard [gRPC health checking service][healthcheck].\n  Also serves as an example of both unary and response streaming.\n- [`tonic-reflection`]: A tonic based gRPC reflection implementation.\n- [`examples`]: Example gRPC implementations showing off tls, load balancing and bi-directional streaming.\n- [`interop`]: Interop tests implementation.\n\n## Contributing\n\n:balloon: Thanks for your help improving the project! We are so happy to have\nyou! We have a [contributing guide][guide] to help you get involved in the Tonic\nproject.\n\n[guide]: CONTRIBUTING.md\n\n## License\n\nThis project is licensed under the [MIT license](LICENSE).\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in Tonic by you, shall be licensed as MIT, without any additional\nterms or conditions.\n\n\n[gRPC]: https://grpc.io\n[`tonic`]: ./tonic\n[`tonic-build`]: ./tonic-build\n[`tonic-types`]: ./tonic-types\n[`tonic-health`]: ./tonic-health\n[`tonic-reflection`]: ./tonic-reflection\n[`examples`]: ./examples\n[`interop`]: ./interop\n[`tokio`]: https://github.com/tokio-rs/tokio\n[`hyper`]: https://github.com/hyperium/hyper\n[`prost`]: https://github.com/tokio-rs/prost\n[`protobuf`]: https://protobuf.dev/\n[`rustls`]: https://github.com/rustls/rustls\n[`interop`]: https://github.com/hyperium/tonic/tree/master/interop\n[Examples]: https://github.com/hyperium/tonic/tree/master/examples\n[Website]: https://github.com/hyperium/tonic\n[Docs]: https://docs.rs/tonic\n[discord]: https://discord.gg/6yGkFeN\n[routeguide-tutorial]: https://github.com/hyperium/tonic/blob/master/examples/routeguide-tutorial.md\n[helloworld-tutorial]: https://github.com/hyperium/tonic/blob/master/examples/helloworld-tutorial.md\n[healthcheck]: https://grpc.io/docs/guides/health-checking/\n","funding_links":[],"categories":["Rust","Libraries","Language-Specific","语言资源库","Rust 程序设计","rust","Programming","Web Framework","\u003ca name=\"Rust\"\u003e\u003c/a\u003eRust"],"sub_categories":["Network programming","Rust","rust","网络服务_其他","Rust 🦀"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperium%2Ftonic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperium%2Ftonic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperium%2Ftonic/lists"}