Bond 是一个跨平台(目前支持 Linux、OS X 和 Windows)的数据格式化框架,支持跨语言(C++、 C#和 Python)的序列化和解序列化,与 Protocol Buffers、Thrift 和 Avro 类似。已在微软内部用于一些大规模的服务。
Bond 的主要作者是微软主任软件工程师 Adam Sapek,来自波兰,自 2001 年一直效力于微软。之前他曾经负责设计 P2P 协议 BitSwarm。
Sapek 自己在 Hacker News 中透露,Bond 比较引人注目的是其核心部分包括编译器和代码生成器是用函数式语言 Haskell 开发的。
根据官方文档,Bond 的特点主要是:
Hacker News 上的两次讨论:1,2
有意思的是,类似的框架除了 ProtoBuf、Thrift 和 Avro 之外,还有 MessagePack、Google 新推的 FlatBuffers、Martin Thompson 的 SBE 和 ProtoBuf 负责人 Kenton Varda(Google 拜 Jeff Dean 教也是他创立的)创业后开发的 Cap'n Proto(号称提速无限倍)。
这些项目背后的开发者实力都很强,它们之间的选择,可成了一个课题了。之前 Varda 曾经写过一篇文章比较几个新一点的方案,可供参考。此外维基百科也有专门的条目:http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats。