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