Protobuf 的卖点之一是向后兼容性,即开发人员可以改进格式,而老客户端仍然可以使用它。
现在有了名为 proto3 的新 Protobuf 版本,IDL 语言本身不兼容,例如options
, required
删除的地方是枚举的新语法,没有扩展名。
这是否意味着使用 proto3 无法生成较旧的 proto2 也能读取/理解的二进制文件?
就好像你必须继续使用proto2。如果你开始使用 proto3,你就无法与旧系统对话,或者必须重写、重新编译所有这些.proto
s
这首先就是兼容性问题。
是的,如果您的某些系统是基于 proto2 的,那么最好继续使用 proto2。在我看来,proto3 并没有引入很多新功能,大多数库将继续支持 proto2。
然而,有线格式大部分是兼容的。只要标签号相同,编码就保持不变。必需/可选说明符不会影响编码,它们只是在解码后执行的检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)