Google Protocol Buffers 可以在不同语言之间 serialized/parsed 吗?

Can Google Protocol Buffers be serialized/parsed between different languages?

official site 以及其他一些来源将 Google Protocol Buffers 的优势之一描述为具有高度的互操作性。我知道该技术支持开箱即用的不同语言绑定,还有更多第三方实现,但这到底是什么意思?

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

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

如果 正确的,是什么让这种情况发生 - 是他们的 serialization/parsing 逻辑遵守 common/consistent 有线格式详细 here?

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