8个版本
0.2.0 | 2024年3月15日 |
---|---|
0.1.4 | 2023年10月4日 |
0.1.3 | 2023年9月21日 |
0.0.3 | 2023年9月14日 |
0.0.2 | 2023年8月9日 |
#5 在 #protokit
每月下载量 32
用于 7 个crate (3 直接)
34KB
827 行
Protokit
Rust协议缓冲区的实现。
为什么不选择prost/pb-j/rust-protobuf?
最初是为了支持合适的textformat。
any_value {
[type.googleapis.com/com.example.SomeType] {
field1: "hello"
}
}
在我调查其他crate后,我发现它们存在其他问题(在rust-protobuf中需要装箱,prost中的代码生成杂乱)。
功能
- 二进制(100%符合) + 文本(90%符合)格式支持
- 无需消息装箱
- GRPC (可用于tonic)
- 优雅的derive宏,无需proto编译器即可创建消息实现
#[derive(Default, Debug, Clone, BinProto)]
pub struct FieldPath {
#[field(1, varint, packed)]
pub fields: Vec<u32>,
}
#[derive(Default, Debug, Clone, BinProto)]
pub struct FieldMask {
#[field(1, nested, repeated)]
pub paths: Vec<FieldPath>,
}
依赖项
~0.8–1.3MB
~25K SLoC