Google Protocol Buffers可以在不同语言之间进行序列化/解析吗?

时间:2016-10-06 18:16:01

标签: parsing serialization protocol-buffers language-interoperability

official site以及其他一些来源描述了Google协议缓冲区具有高度互操作性的优势之一。我知道该技术支持开箱即用的不同语言绑定,还有更多作为第三方实现,但这究竟意味着什么?

我的理解是正确的,只要我有一个共同的模式文件,我就可以运行protoc编译器并为多种语言生成代码,然后使用生成的代码用一种语言编写程序,将一些数据序列化为一个文件,然后在另一个程序中用另一种语言解析它?

例如,我在Java中运行的客户端应用程序是否可以序列化一个Google协议缓冲区并通过网络将其发送到用C ++实现的服务器,然后只要双方都是从C ++生成的,就可以解析它并轻松使用它。相同的模式文件?

如果 正确,那么允许这种情况发生的是 - 它们的序列化/解析逻辑是否遵循详细here的通用/一致的有线格式?

1 个答案:

答案 0 :(得分:2)

是的,您可以,是的,这是因为有线格式是固定的(即任何语言绑定都相同)。