【问题标题】:Protobuf backward compatibility and proto3 vs proto2protobuf 向后兼容性和 proto3 vs proto2
【发布时间】:2016-11-18 15:05:33
【问题描述】:

Protobuf 的卖点之一是向后兼容,即开发人员可以进化格式,老客户仍然可以使用它。

现在有了新的 Protobuf 版本,称为 proto3,IDL 语言本身不兼容,例如 optionsrequired 已被删除、新的 enun 语法、无扩展名。

这是否意味着使用 proto3 无法生成旧 proto2 也可以读取/理解的二进制文件?

就像你必须继续使用proto2。如果你开始使用proto3,你就不能和旧系统对话,或者不得不重写,重新编译所有那些.protos 这首先是兼容性问题。

【问题讨论】:

    标签: protocol-buffers compatibility backwards-compatibility proto3


    【解决方案1】:

    是的,如果您的某些系统是基于 proto2 的,那么最好继续使用 proto2。在我看来,proto3 并没有引入很多新特性,大多数库都会继续支持 proto2。

    但是,有线格式大多是兼容的。只要标签号相同,编码就保持不变。必需/可选说明符不影响编码,它们只是解码后执行的检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多