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

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

3
是的,protobuf 二进制格式在所有库版本和语言之间是兼容的。
新版本确实添加了一些新特性(例如 oneof 字段和 proto3 语法),但如果您的 .proto 文件可以与旧版本库编译,则它是完全兼容的。

感谢您的回答。很高兴知道它也可以跨越不同的语言工作。我在我的代码中有其他地方的错误,这让我相信不同版本的protobuf之间可能存在不兼容性。但实际上,我的代码现在运行非常顺畅。第一次使用protobuf真的很棒。强烈推荐用于网络数据交换。向Google致敬! - JasonF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接