2 个不稳定版本
0.2.0 | 2023 年 9 月 27 日 |
---|---|
0.1.0 | 2023 年 9 月 1 日 |
#4 in #转子
7KB
102 行
Rotors
Rust PROTO
cols 没有那个 P
ain
我为什么应该使用这个库?
你可能不应该,因为这个库还在开发中,还没有经过严格的审查。
然而,如果你希望有一种更简单的方法在 tonic
项目中使用原生 Rust 类型,这可能会对你有所帮助。
我应该如何使用这个库?
你不需要编写一个 gRPC xyz.proto
文件,也不需要在你的 build.rs
中使用 tonic-build
工具,你只需在代码中使用一个简单的宏,让宏做大部分繁重的工作!
use rotors::rotors;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct HelloRequest {
pub name: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct HelloReply {
pub message: String,
}
rotors! {
package helloworld;
service Greeter {
rpc SayHello (super::HelloRequest) returns (super::HelloReply);
}
}
rotors!()
宏将定义两个新的 Rust 模块,包含 tonic 客户端和服务器结构。从那时起,一切都将像你习惯的 tonic 一样,只不过你现在可以自由地编写自己的 enum
,而不需要 gRPC 需要的繁琐样板代码。
我应该什么时候使用这个库?
当使用 rotors
创建一些现在 不兼容 gRPC 的 RPC 代码时,你应该使用这个库。
另一方面,如果你正在编写一个大型项目,或者想要在运行不同版本软件的实例之间进行通信,甚至是在不同语言中编写的软件,这个 crate 对你来说不会有太多帮助。
依赖项
~5–6.5MB
~118K SLoC