8 releases
0.2.0 | Mar 15, 2024 |
---|---|
0.1.4 | Oct 4, 2023 |
0.1.3 | Sep 21, 2023 |
0.0.3 | Sep 14, 2023 |
0.0.2 | Aug 9, 2023 |
#34 in #varint
Used in 7 crates
(3 directly)
34KB
827 lines
Protokit
Implementation of protocol buffers for rust.
Why not prost/pb-j/rust-protobuf?
Started with my need for proper textformat support.
any_value {
[type.googleapis.com/com.example.SomeType] {
field1: "hello"
}
}
After I investigated other crates, I found out that they had other issues ( required boxing in rust-protobuf, messy codegen in prost).
Features
- Binary(100% conformance) + Text(90% conformance) format support
- No message boxing required
- GRPC (usable with tonic)
- Nice derive macro for creating message implementations without proto compiler:
#[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>,
}
Dependencies
~0.6–1.1MB
~22K SLoC