protobuf-py:Python 原生 Protobuf 无妥协方案
Protobuf-py: Protobuf for Python, without compromises

我们推出了 protobuf-py,一个专为 Python 打造的 Protocol Buffers 库。它完全从零编写,通过了 Protobuf 一致性测试套件的所有用例,支持 proto2、proto3 和 editions,同时保留了扩展、自定义选项和未知字段等完整功能。与 Google 的官方包不同,它生成的代码是真正的 Python 类型,没有运行时依赖,且运行在纯 Python 3.10+ 上。配合 Rust 加速器,其性能在生产负载下与 upb 引擎相当。我们解决了 Python 开发者长期面临的困境:要么选择功能完整但 API 反人类的 Google 包,要么选择体验友好但功能缺失的 betterproto。现在,两者兼得。
对于 Python 开发者而言,历史的选择一直是在一个完整的 Protobuf 实现和一个感觉像 Python 的库之间徘徊。
- Google Protobuf 工程师指出,官方实现因需兼顾内部存储、日志、FFI 等海量场景及长期向后兼容性,导致 API 设计存在权衡,无法像 Buf 方案那样针对单一场景极致优化。
- 有评论者批评 Google 的 Python 实现生成的类完全不透明且无法检查,推测其本质是底层 C++ API 的薄代理,这与社区期望的纯 Python 体验相悖。
- 部分开发者认为 Protobuf 的核心价值在于线格式规范(wire format)的互操作性,而非特定语言的实现细节,因此动态解析方案与代码生成方案各有适用场景。
- 有用户提出 Feature Flag 等场景若支持 Protobuf 定义 schema,将能解决复杂变体下使用非类型化 JSON 带来的痛点,具有变革性意义。