Protobuf 的卖点之一是向后兼容,即开发人员可以进化格式,老客户仍然可以使用它。
现在有了新的 Protobuf 版本,称为 proto3,IDL 语言本身不兼容,例如options
,required
丢弃的地方,enuns 的新语法,没有扩展。
这是否意味着使用 proto3 无法生成旧 proto2 也可以读取/理解的二进制文件?
这就好像你必须继续使用proto2。如果你开始使用 proto3,你就不能和旧系统对话,或者不得不重写、重新编译所有那些.proto
s,这首先是兼容性中断。