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

标签 parsing serialization protocol-buffers language-interoperability

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

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

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

如果那是正确的,是什么导致了这种情况的发生——是不是他们的序列化/解析逻辑遵循了一种通用/一致的有线格式,详见here

最佳答案

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

关于parsing - 可以在不同语言之间序列化/解析 Google Protocol Buffers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39903003/

相关文章:

python - 我可以查看使用 lxml 从 html 文档解析的元素源的实际行吗

java - Netbeans Java GUI 计算器 - 如何执行 2 个以上数字的计算?

python - 为什么 json.loads 比 ast.literal_eval 快一个数量级?

go - protoc 从属于不同包的两个 proto 文件生成 golang 代码

c++ - Google语音识别(cpp示例):对AssignDescriptors()的 undefined reference

android - com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream

c++ - 使用boost Spirit解析带有二进制信封的文本文件

c# - 嵌套 JObject 被序列化为空数组

java - 如何在Java中获取字段的注解

java - Android,使用proguard和序列化