Protocol buffers proto2能和proto3说话吗?
我有两个应用程序通过GPB消息相互通信。两人都使用proto3,但发现其中一人必须使用proto2。如果消息相同,那么一个程序可以使用proto2进行编译,而另一个程序可以使用proto3吗?或者它们是否需要使用相同版本的proto进行编译。wire格式非常相似,因此在某种程度上可以工作。但是,有一些警告:Protocol buffers proto2能和proto3说话吗?,protocol-buffers,Protocol Buffers,我有两个应用程序通过GPB消息相互通信。两人都使用proto3,但发现其中一人必须使用proto2。如果消息相同,那么一个程序可以使用proto2进行编译,而另一个程序可以使用proto3吗?或者它们是否需要使用相同版本的proto进行编译。wire格式非常相似,因此在某种程度上可以工作。但是,有一些警告: proto3上不存在必填/可选字段的区别。您应该在proto2端将所有字段设置为可选,以避免丢失必填字段的错误 当proto3对字段进行编码时,在proto2端解码时,任何具有零值的字段都
- proto3上不存在
/必填
字段的区别。您应该在proto2端将所有字段可选
,以避免丢失必填字段的错误设置为可选
- 当proto3对字段进行编码时,在proto2端解码时,任何具有零值的字段都将丢失。若您在proto2端指定0作为默认值,那个么结果应该是ok
- 扩展和任何类型都很难以兼容两者的方式使用