Protocol Buffers 3.15.0 发布

Protocol Buffers 3.15.0 已经发布。Protocol Buffers(protobuf)是 Google 开源的语言无关、平台无关的可扩展机制,用于序列化结构化数据。此次更新亦是其 2021 年的第一次正式版本。

部分更新内容

  • 编译器
    • 默认启用 proto3 的可选字段,不再需要 --experimental_allow_proto3_optional 标志 
  • c++
    • MessageDifferencer:修复了使用多个自定义忽略时的错误
    • 在 MSVC 中使用 init_seg 以更早开始初始化
    • 运行时不再触发 -Wsign-compare 警告
    • 修复了 -Wtautological-constant-out-of-range-compare 警告
    • 即使禁用了 RTTI,DynamicCastToGenerated 也可用于 nullptr 输入
  • python
    • 提供了 reverse() 方法的重写版本
    • 可以重写 MessageFactory.CreateProtoype 以自定义类的创建
    • 修复 PyUnknownFields 内存泄漏
    • 添加 macOS big sur 兼容性
  • JavaScript
    • 生成带有 * 类型的 getDescriptor 方法
    • 对生成的消息强制执行 let/const
    • js/binary/utils.js:修复 jspb.utils.joinUnsignedDecimalString 以使用负数低位和非零的高位参数工作
  • PHP
    • 添加 PHP 8 支持
    • 取消注册 INI 条目并修复关机时的无效读取
    • 修复 PhpDoc 注释,以使消息访问器包含 “| null”
    • 向 PHP 编译器添加对不赞成使用的字段的支持
  • Ruby
    • 添加了对 Ruby 3 的支持
    • 重新编写数据存储层,使其基于 upb 库 的 upb_msg 对象,有助于提高解析性能
    • 完善 JRuby 支持
    • 修复 Windows 上的 gRPC-Ruby 无限递归/内存不足的问题
  • Java
    • 通过 ByteBuffer 使用 CodedInputSteam 时避免可能的 UnsupportedOperationException
    • 使 Durations.comparator() 和 Timestamps.comparator() 可序列化
    • 为动态消息字段类型验证失败添加更多详细的错误信息
    • 现在,Proto3 Oneof字段具有 “has” 方法来检查其是否存在于 Java
  • C#
    • 修复了解析跨段边界的负 Int32Value 的问题
    • 更改 ByteString 以使用内存并支持无复制的不安全创建
    • 通过删除 MessageAdapter 优化 MapField 序列化
    • 允许使用扩展注册表解析 FileDescriptor

详细内容请查看更新公告

猜你喜欢

转载自www.oschina.net/news/130440/protobuf-3-15-0-released