Rust 实现了支持版本、JSON 序列化和零拷贝视图的 protobuf
两层的拥有/借用类型。 每个消息都会生成 MyMessage (拥有,堆分配) 和 MyMessageView (零拷贝从网络中获取)。 OwnedView 会将视图包装成其支持的 Bytes 缓冲区,以便跨异步边界使用。
未知字段保留。 可实现代理和中间件使用案例的往返保真性。
运行时反射。 buffa-descriptor (在 reflect 功能下) 提供了 DescriptorPool 和 DynamicMessage,用于无生成代码的基于模式的编码、解码和 JSON 处理 — 此外,还提供了扩展、自定义选项访问、Any 包/卸载以及符号→文件查找,用于 gRPC 服务器反射。生成的类型直接实现了相同的 ReflectMessage 特性(vtable 模式),因此 foo.reflect() 可以原地借用,CEL 评估器、转码网关或通用拦截器均统一处理带类型和动态消息 — 无需重新编码往返。有关与生成代码相比的成本,请参阅 反射。
no_std + alloc。 核心运行时不使用 std, 包括通过 serde 进行 JSON 序列化。启用 std 会添加 std::io 集成、 std::time 集成和 std::thread 集成。
暂无开放 Issues,或尚未同步最近议题。