Protocol Buffers 28.0 已经发布。Protocol Buffers(protobuf)是 Google 开源的语言无关、平台无关的可扩展机制,用于序列化结构化数据。

具体更新内容包括:

Announcements

  • Protobuf News 可能包括针对即将发生的更改的附加公告或预先公告。

Compiler

  • UPB 文本编码器不使用 Rust 的反射(用于 message 的 Debug trait),它将打印出 message 的 field number 到 value entries,而不是 field name 到 value entries,就像使用反射的通常文本格式所期望的那样。(f9dd9ce
  • 启用 MessageLite::DebugString 以在可能的情况下使用 Message::DebugString。(f810cc5
  • 始终报告来自 protoc 的插件支持错误。(986ef8d
  • 停止支持 EDITION_PROTO2 作为 EDITION_LEGACY 的别名。(35b3425
  • 将 descriptor.proto 中删除的字段标记为保留(44c409d
  • Protoc:在 option values 中支持 inf、-inf、nan 和 -nan ( #15017 ) ( 3c03e93 )

C++

  • 将 -Werror 移至 test/dev bazelrc 文件。(#17938)(f5a1b17
  • 引入 FieldDescriptor::cpp_string_type() API 来替代直接的 ctype 检查,后者将在下一次的 breaking change 中移除 ( 72b0b7a )
  • 安装时删除了特定的 MSVC 设置(#17285)(770090e
  • 使用 DLL 链接时省略_raw_default_instance_声明。(79c55cb
  • 启用 MessageLite::DebugString 以在可能的情况下使用 Message::DebugString。(f810cc5
  • 修复 proto 代码内部使用 ctype 而不是 string_type 的错误。(dfbe987
  • 当仅需要 bucket number 时,将 FindHelper() 替换为 BucketNumber()。( 8c7b1ec )
  • ……

Java

  • 为 GeneratedMessageV3、SingleFieldBuilderV3、RepeatedFieldBuilderV3 及其嵌套类提供二进制兼容性垫片,以恢复与 <=v3.x.x 生成的代码的二进制兼容性,这些代码是在 v4.26.0 破坏性版本发布之前根据 v3.x.x 构建的。(6bf01c5
  • 删除未使用的 pom.xml 文件。(aaf5f79
  • 为 LazyStringArrayList.add(String) 添加重载:boolean ( 761d49a )
  • Java:弃用 newExtensionWriter。(7122ba1
  • Immutable java:使用来自 gencode 的新的较低分配扩展序列化 API(4151486
  • 对于来自 custom pool 的描述符,使用 generated pool 中的 Java 特性重新序列化所有未解析的特性。(415a147
  • 修复所有语言中的分隔继承。(8beb970
  • Full java runtime:序列化 UnknownFieldSet 时避免分配 ArrayList 迭代器(fac847c
  • 将 Java utf8 功能的弃用时间推迟至 2024 年。(bd7078d
  • ……

完整内容可查看:https://github.com/protocolbuffers/protobuf/releases/tag/v28.0

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。