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日 |
#2223 在 编码
每月26 次下载
在 6 个crate中使用了(5 个直接使用)
41KB
1K SLoC
Protokit
Rust 的协议缓冲区实现。
为什么不使用 prost/pb-j/rust-protobuf?
从我对适当的 textformat 支持的需求开始。
any_value {
[type.googleapis.com/com.example.SomeType] {
field1: "hello"
}
}
在调查其他crate后,我发现它们有其他问题(rust-protobuf中需要boxing,prost中的代码生成混乱)。
特性
- 二进制(100% 符合度)+ 文本(90% 符合度)格式支持
- 不需要消息boxing
- 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>,
}
依赖关系
~1.7–2.5MB
~43K SLoC