protocol-buffers - Protocol Buffer 和 Flatbuffer 有什么区别?

标签 protocol-buffers flatbuffers

两者都是序列化库,均由 Google 开发人员开发。他们之间有什么大的区别吗?使用 Protocol Buffers 转换代码是不是很麻烦?使用FlatBuffers

最佳答案

我在这里写了一些序列化系统的详细比较,包括 Protobufs 和 FlatBuffers:

https://kentonv.github.io/capnproto/news/2014-06-17-capnproto-flatbuffers-sbe.html

但是,比较更侧重于比较三个新的“零复制”序列化系统,并且主要包括 Protobuf 作为引用点。另外,我是 Cap'n Proto 的作者,也是 Protobufs v2 的作者(我在 Google 负责开源 Protobufs),所以这种比较可能会有偏差。

(2021 年更新:)请注意,Protobufs 早在 2001 年左右就在 Google 引入,至今仍然是那里的“通用语言”。 FlatBuffers 于 2014 年推出,并在一些项目中使用,但 Protobuf 仍然是 Google 的主要数据交换格式,并且无意改变这一点。公平地说,如果 Google 愿意的话,他们可能无法改变这一点,因为代码太多了。

关于protocol-buffers - Protocol Buffer 和 Flatbuffer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356551/

相关文章:

java - 将短整数附加到 CodedOutputStream 的干净方法

java - Flatbuffers:如何构建嵌套表?

python - 如何使用 Python 将 FlatBuffer 消息从二进制格式转换为人类可读的文本格式?

c++ - flatbuffer c++:是否有可能从 flatbuffers::Vector 窃取

javascript - 在 JavaScript Google Flatbuffers 中,如何编写 ulong?

c++ - 使用 Packed=true 原型(prototype)文件读取非打包重复字段

python - 如何在 Protobuf 中序列化嵌套消息中的默认值

java - protobuf 确定要反序列化的消息类型

c# - 使用 Protocol Buffer 制作通用反序列化器

c - 如何在 FlatBuffers 架构文件中声明指针类型?