Protobuf向后兼容性和proto3 vs proto2

时间:2016-11-18 15:05:34

标签: protocol-buffers compatibility backwards-compatibility proto3

Protobuf的一个卖点是向后兼容性,即开发人员可以改进格式,而旧版客户仍然可以使用它。

现在使用名为proto3的新Protobuf版本,IDL语言本身与optionsrequired删除的地方,enuns的新语法,无扩展等不兼容。

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

这就像你必须继续使用proto2。如果您开始使用proto3,则无法与旧系统通信,或者必须重写,重新编译所有.proto个 这首先是兼容性破解。

1 个答案:

答案 0 :(得分:3)

是的,如果您的某些系统是基于proto2的,那么最好继续使用proto2。在我看来,proto3没有引入许多新功能,大多数库将继续支持proto2。

然而,有线格式大多兼容。只要标签号相同,编码保持不变。 required / optional说明​​符不影响编码,它们只是解码后执行的检查。