Implementation of protocol buffers for rust.
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).
- 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>,
}