Protocol Buffers 29.0 已经发布。Protocol Buffers(protobuf)是 Google 开源的语言无关、平台无关的可扩展机制,用于序列化结构化数据。
具体更新内容包括:
Bazel
- 在 Args 之后将缺失的行添加到 docstring 中(#19213)(6f310d5)
- 修复 proto_info_bzl ( #18918 ) ( 083de5f )
- 在 protobuf 中随处使用 rules_cc ( ddadd0b )
- 将 rules_cc 升级到 0.0.13 ( 3dd4835 )
- 将 proto toolchain string 转换为 Label(aa181e2)
- 为测试准备支持目标(a748b10)
- 支持 --incompatible_enable_proto_toolchain_resolution ( 372ddb3 )
- 从 Bazel 移除 ProtoInfo 和 ProtoLangToolchainInfo ( 426ca8a )
- 从 Bazel 库中移除 java_{lite_}proto_library (d77bdac)
- 将 proto_toolchain 从 rules_proto 移至 protobuf ( 9f9cb7a )
- 从 Bazel 库移除 proto_library ( 3ff2cf0 )
- 从 Bazel binary 移出 proto_common 实现 (b19fbe6)
Compiler
- 开始向 SourceCodeInfo 和 FileDescriptorSet 添加扩展名编号,以便于工具使用。(07e489d)
- 更新 protoc 版本以包含 Go 的 proto 版本语言功能(#19013)(63d966b)
- 为单个 feature values 引入生命周期。(0b6e768)
- Windows - 修复 utf8 命令行参数的处理 ( #17854 ) ( b9d1800 )
- 限制功能弃用警告以减少 noise。(5cd9a46)
C++
- 修复 C++ ifndef_guard printer 以将“-”转换为“_”。(7331b77)
- 修复 C++ codegen namespace printer 以相反的顺序 print 关闭的命名空间。(3bf9c40)
- 修复 exotic architectures 上的 raw_ptr.cc ( #18193 ) ( 63f6262 )
- 修复 DynamicMessage 和 oneofs 中的 cord 处理。(9e8b30c)
- 修复 2023 版中打包反射处理错误。(4c92328)
- 添加 JsonStreamToMessage 方法 ( 0259cc3 )
- 在 ExtensionSet::ForEach 中添加后续扩展的预取。(9b019ee)
- 删除 AnyMetadata 类并改用 free functions。(920d5c3)
- 生成枚举和类时添加
[[deprecated]]
属性。( 23aada2) - ……
Java
- 删除 Timestamp 和 Duration add/subtract/between 的弃用警告,目前还没有替代方案(f606c13)
- [29.x] 添加缺失的 java load ( #19016 ) ( bb287be )
- 为 Kotlin jar 提供 OSGi 清单 ( #18812 ) ( 0c51eba )
- 为重要的云客户重新导出处于弃用状态的 includingDefaultValueFields(7321b2f)
- 通过重新添加 mutableCopy 帮助程序恢复与 3.22 gencode 的兼容性 ( 1b1e90b )
- 通过提取很少执行的字符串格式化代码来加速 CodedOutputStream (f8f5136)
- 返回 true、false 和 "" 的 constant Value objects ( 4fbb0c5 )
- 优化 CodedOutputStream.ArrayEncoder.writeFixed32NoTag/writeFixed64NoTag ( a51f98c )
- CodedOutputStream:避免更新位置超出数组末尾。(76ab5f2)
- 在 UnsafeDirectNioEncoder 中将 IndexOutOfBoundsException 转换为 OutOfSpaceException ( 0e75d92 )
- 抑制 ReturnValueIgnored 容易出错的问题 ( bbbc7b9 )
- ……
更新说明:https://github.com/protocolbuffers/protobuf/releases/tag/v29.0