39 个版本
0.12.1 | 2024 年 7 月 17 日 |
---|---|
0.11.0 | 2024 年 2 月 8 日 |
0.10.2 | 2023 年 9 月 28 日 |
0.9.2 | 2023 年 4 月 17 日 |
0.0.0 |
|
#1 in Web 编程
4,185,868 每月下载量
用于 2,084 个 Crates(直接使用 1,392 个)
470KB
10K SLoC
gRPC 的 Rust 实现方案,一个高性能、开源的通用 RPC 框架,将移动和 HTTP/2 作为首要目标。
tonic
是一个关注高性能、互操作性和灵活性的 HTTP/2 上 gRPC 实现方案。这个库是为了具有异步/等待的一等支持并作为用 Rust 编写的生产系统的核心构建块而创建的。
概述
tonic
由三个主要组件组成:通用的 gRPC 实现、高性能的 HTTP/2 实现以及由 prost
驱动的代码生成。通用实现可以通过一组通用特质支持任何 HTTP/2 实现和任何编码。HTTP/2 实现基于 hyper
,这是一个基于强大的 tokio
堆栈的快速 HTTP/1.1 和 HTTP/2 客户端和服务器。代码生成包含从 protobuf
定义构建客户端和服务器所需的工具。
功能
- 双向流
- 高性能异步 I/O
- 互操作性
- 由
rustls
支持的 TLS - 负载均衡
- 自定义元数据
- 身份验证
- 健康检查
入门指南
示例可以在 examples
中找到,对于更复杂的场景,interop
可能是一个很好的资源,因为它展示了 gRPC 许多功能的示例。
如果您正在使用 rust-analyzer,我们建议您将 "rust-analyzer.cargo.buildScripts.enable": true
设置为正确加载生成的代码。
对于 IntelliJ IDEA 用户,请参阅 此处 并启用 org.rust.cargo.evaluate.build.scripts
实验性功能。
Rust 版本
tonic
的 MSRV 是 1.70
。
$ rustup update
$ cargo build
依赖项
为了构建 tonic
>= 0.8.0,您需要 Protocol Buffers 编译器 protoc
以及 Protocol Buffers 资源文件。
Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt install -y protobuf-compiler libprotobuf-dev
Alpine Linux
sudo apk add protoc protobuf-dev
macOS
假设 Homebrew 已安装。(如果尚未安装,请参阅 Homebrew 网站 上的安装说明。)
brew install protobuf
Windows
- 从 这里 下载最新版本的
protoc-xx.y-win64.zip
- 解压文件
bin\protoc.exe
并将其放置在PATH
的某个位置 - 通过在命令提示符下输入
protoc --version
验证安装
教程
helloworld
教程提供了使用tonic
的基本示例,非常适合初学者!routeguide
教程提供了使用tonic
及其所有功能的完整示例。
获取帮助
首先,看看您的问题是否可以在 API 文档中找到答案。如果没有,Tonic Discord 频道 中有一个活跃的社区。我们很乐意尝试回答您的问题。如果这不起作用,请尝试打开一个 问题 并提出您的问题。
项目布局
tonic
:通用的 gRPC 和 HTTP/2 客户端/服务器实现。tonic-build
:基于prost
的服务代码生成。tonic-types
:基于prost
的 gRPC 工具类型,包括对 gRPC 已知类型的支持。tonic-health
:实现标准 gRPC 健康检查服务。同时也作为单例和响应流的双向示例。tonic-reflection
:基于 tonic 的 gRPC 反射实现。examples
:示例 gRPC 实现,展示 tls、负载均衡和双向流。interop
:互操作性测试实现。
贡献
🎈 感谢您的帮助,让我们项目得到改进!我们非常高兴有您的参与!我们有一个贡献指南,帮助您参与到Tonic项目中。
许可证
本项目采用MIT许可证。
贡献
除非您明确表示,否则您提交给Tonic的任何有意包含的贡献将按照MIT许可证授权,不附加任何额外条款或条件。
依赖项
~4–16MB
~206K SLoC