Protocol Buffers 25.0 已经发布。Protocol Buffers(protobuf)是 Google 开源的语言无关、平台无关的可扩展机制,用于序列化结构化数据。
具体更新内容包括:
Announcements
-
Protobuf News 可能包括针对即将发生的更改的附加公告或预先公告。
Compiler
- 实现 proto2/proto3 的版本 ( 3813b66 )
- 将 Protobuf 编译器版本字符串定义为宏,并分离出后缀字符串定义。(3c59585)
- 将 utf8_validation 功能添加回全局功能集中。(153028d)
- 设置版本更新程序以准备 poison pills 并将版本信息嵌入到 C++、Python 和 Java gencode 中。(4322e00)
- 合并 protobuf 和 upb Bazel 存储库 ( 7286ffc )
- Editions:向 protoc 引入用于生成版本功能集默认值的功能。(4019e25)
- 为 ExtensionIdentifier 创建 reflection helper。(4d5ab73)
- Editions:为 C++ 生成器提供指定其特性的 API。(e897bcf)
- 发布带有声明验证的扩展声明。(e72b0e1)
- Editions:将 string_field_validation 移植到 C++ 特性 ( 1f95830 )
- Protoc:解析器拒绝显式使用 map_entry 选项 ( #13479 ) ( 8f59292 )
- 放弃对 Bazel 5 的支持。( a80daa2 )
- 允许代码生成器指定它们是否支持版本。(2176a14)
C++
- 在
InternalOutOfLineDeleteMessageLite()
上设置PROTOBUF_EXPORT
( #14434 ) ( db89a51 ) - 更新过时的 checked-in 文件 ( #14431 ) ( ada0be8 )
- 将 PROTOBUF_NOINLINE 应用于某些需要它的函数的声明。(6e848b0)
- 使 JSON UTF-8 边界检查包含最大可能的 UTF-8 字符。(e80b8ec)
- 减少
Map::size_type
到 32 位。Protobuf 容器不能超过 ( 95d2b2e ) - 将 Protobuf 编译器版本字符串定义为宏,并分离出后缀字符串定义。(3c59585)
- 在生成的 oneof 访问器上添加
ABSL_ATTRIBUTE_LIFETIME_BOUND
属性。(e33e0d2) - 将 utf8_validation 功能添加回全局功能集中。(153028d)
- 设置版本更新程序以准备 poison pills 并将版本信息嵌入到 C++、Python 和 Java gencode 中。(4322e00)
- 将 prefetching 添加到 arena allocations 中。(fbdeb5a)
- 合并 protobuf 和 upb Bazel 存储库 ( 7286ffc )
- 在生成的重复和 map 字段访问器上添加
ABSL_ATTRIBUTE_LIFETIME_BOUND
属性。(9a0a3cf) - gcc 7.5 上的 ICE 解决方法是不让一个重载使用调用另一个重载。(0522054)
- 为 ExtensionIdentifier 创建 reflection helper。(4d5ab73)
- 修复了 32 位 MSVC。( 66cf6b1 )
- 删除 protoc 中禁用表驱动解析器的选项。(6d03f9b)
- ......
Java
- 实现 proto2/proto3 的版本 ( 3813b66 )
- 从 Java gencode 字段访问器表中删除合成 oneof。(9ad2268)
- Timestamps.parse:添加对时区偏移中无效小时/分钟的错误处理。(8f85138)
- 将 Protobuf 编译器版本字符串定义为宏,并分离出后缀字符串定义。(3c59585)
- 在生成的 oneof 访问器上添加
ABSL_ATTRIBUTE_LIFETIME_BOUND
属性。 (ht...
更多详情可查看更新说明。