不同版本的Google protobuf可以一起使用吗?

时间:2018-07-12 08:23:23

标签: protocol-buffers multiple-versions

我正在编写C ++客户端/服务器应用程序。服务器是从VS 2015构建的,而客户端是由VS 2010构建的。两者都是用C ++编写的。我正在尝试使用Google的protobuf进行序列化和解析,以实现服务器和客户端之间的数据交换。 VS 2015使用一个版本(在我的情况下为3.5)protobuf生成的代码,而VS 2010使用另一个版本(在我的情况下为2.6.1)。我的问题是:数据可以在一侧进行序列化而在另一侧进行解析吗?我在两边都使用相同的.proto文件。但是由于上述原因,必须使用不同版本的protobuf生成代码。

1 个答案:

答案 0 :(得分:1)

是的,protobuf二进制格式在所有库版本和语言之间都是兼容的。

较新的版本确实添加了一些新功能(例如oneof字段和proto3语法),但是如果您的.proto文件与较旧的版本库一起编译,则它是完全兼容的。 / p>