官方网站以及其他一些来源将 Google Protocol Buffers 的优势之一描述为高度可互操作的。我知道该技术支持开箱即用的不同语言绑定,以及更多第三方实现,但这究竟意味着什么?
我的理解是否正确认为只要我有一个通用的模式文件,我就可以运行 protoc 编译器并为多种语言生成代码,然后使用生成的代码以一种语言编写程序,将一些数据序列化到文件中,然后在另一个程序中用另一种语言解析它?
例如,我在 Java 中运行的客户端应用程序是否可以序列化 Google 协议缓冲区并通过线路将其发送到用 C++ 实现的服务器,然后只要双方都是从同一个模式文件生成的,该服务器就可以对其进行解析并轻松使用它?
如果这是正确的,那么是什么允许这种情况发生 - 他们的序列化/解析逻辑是否遵循此处详述的通用/一致的线路格式?