Bond是一个跨平台(目前支持Linux、OS X和Windows)的数据格式化框架,支持跨语言(C++、 C#和Python)的序列化和解序列化,与Protocol Buffers、Thrift和Avro类似。已在微软内部用于一些大规模的服务。 Bond的主要作者是微软主任软件工程师Adam Sapek,来自波兰,自2001年一直效力于微软。之前他曾经负责设计P2P协议BitSwarm。 Sapek自己在Hacker News中透露,Bond比较引人注目的是其核心部分包括编译器和代码生成器是用函数式语言Haskell开发的。 根据官方文档,Bond的特点主要是:
有意思的是,类似的框架除了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。 |