Google 协议缓冲区可以在不同语言之间进行序列化/解析吗?
Posted
技术标签:
【中文标题】Google 协议缓冲区可以在不同语言之间进行序列化/解析吗?【英文标题】:Can Google Protocol Buffers be serialized/parsed between different languages? 【发布时间】:2016-10-06 18:16:00 【问题描述】:official site 以及其他一些消息来源将 Google Protocol Buffers 的优势之一描述为高度可互操作。我知道该技术支持开箱即用的不同语言绑定,以及更多第三方实现,但这究竟意味着什么?
我的理解是否正确,认为只要我有一个通用的模式文件,我就可以运行 protoc 编译器并为多种语言生成代码,然后使用生成的代码以一种语言编写程序,将一些数据序列化为一个文件,然后在另一个程序中用另一种语言解析它?
例如,我在 Java 中运行的客户端应用程序是否可以序列化 Google 协议缓冲区并将其通过线路发送到用 C++ 实现的服务器,然后只要双方都是从相同的架构文件?
如果这是正确的,那么是什么允许发生这种情况 - 是否它们的序列化/解析逻辑遵循了一个通用/一致的线路格式,详细说明 here?
【问题讨论】:
【参考方案1】:是的,你可以,是的,这是因为有线格式是固定的(即任何语言绑定都相同)。
【讨论】:
谢谢!对不起,如果这个问题似乎毫无意义 - 我找不到任何明确表达的地方哈哈。以上是关于Google 协议缓冲区可以在不同语言之间进行序列化/解析吗?的主要内容,如果未能解决你的问题,请参考以下文章