版本 21.x 的新闻公告

Protocol Buffers 版本 21.x 宣布的更改。

以下公告特定于版本 21.x。有关按时间顺序呈现的信息,请参阅新闻

Python 更新

我们在 Protocol Buffers 的 Python 语言支持方面做了一些更改。版本 4.21.0 是一个新的主要版本,紧随 3.20.1 之后。新版本基于 upb 库,与以前的版本相比,提供了明显更好的解析性能,特别是对于大型负载。它还包括用于 Apple silicon 的预构建二进制模块,无需手动构建即可提高性能。

新版本确实包含一些重大更改。具体来说

  • 依赖于隐式创建的类的 UnknownFields() 方法已替换为显式创建的 UnknownFieldSet 类。
  • 一些非核心特性可能已更改,例如某些字符串或错误消息的特定格式。这些不被认为是重大更改,但仍可能影响您现有的代码库。
  • 依赖于在 Python 和 C++ 之间共享消息的应用程序在新版本中会中断。大多数开发人员不会受到此影响,但 Nucleus 和可能其他库的用户可能会受到影响。作为一种解决方法,您可以设置一个环境变量,强制库保持兼容性。
  • Python upb 需要从 protoc 3.19.0 或更高版本生成的代码。