阅读更多

0顶
0踩

开源软件

原创新闻 微软的开源数据格式化框架Bond

2015-04-08 09:22 by 副主编 mengyidan1988 评论(0) 有5666人浏览
Bond是一个跨平台(目前支持Linux、OS X和Windows)的数据格式化框架,支持跨语言(C++、 C#和Python)的序列化和解序列化,与Protocol Buffers、Thrift和Avro类似。已在微软内部用于一些大规模的服务。

Bond的主要作者是微软主任软件工程师Adam Sapek,来自波兰,自2001年一直效力于微软。之前他曾经负责设计P2P协议BitSwarm。

Sapek自己在Hacker News中透露,Bond比较引人注目的是其核心部分包括编译器和代码生成器是用函数式语言Haskell开发的。

根据官方文档,Bond的特点主要是:

  • 类型系统非常丰富,引入了继承、类型别名和泛型。这方面与Apache Thrift比较类似。但缺乏Avro和 Protocol Buffers支持的联合类型,这是通过可选字段的schema来表示的。
  • 编程模型也更接近Thrift,生成原生类型,用目标语言和原生集合表示schema,但是Bond不会硬编码类型映射,更加灵活。
  • 协议方面,Bond支持三类:Tagged binary protocol(类似于Thrift的protocol和Protocol Buffers的wire format,用于PRC场景)、untagged protocol(类似Avro wire format,载荷是压缩的,用于数据存储场景)、文本协议如JSON和XML。协议是可插拔的,尽可能地通过泛型来实现,因此没有性能开销。 -架构上,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
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • .Net开源框架列表

    框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。官网 ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。...

  • .Net开源框架列表【转载】

    框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。官网 ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。...

  • vcpkgC++开源项目1

    vcpkgC++开源项目1

  • .net 开源项目

    API框架NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。...

  • .NET方面的框架的整理和总结

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在...Microsoft Velocity:微软自家分布式缓存服务框架。 Memcahed:一套分布式的高...

  • .NET开源项目

    框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。 ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备...

  • .net 框架

    应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligence) 程序集处理(Assembly Manipulation) 资源(Assets) 认证和授权(Authentication and ...

  • GIT开源优秀项目

    (注:下面用 [$] 标注的表示收费工具,但部分收费工具针对开源软件的开发/部署/托管是免费的) 目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial ...

  • .NET平台框架整理(1)

    框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。官网 ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。...

  • 一些.NET的开源项目资料

    框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。 ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设...

  • .Net 开源项目资源大全

    Awesome DotNet,这又是一个 ...内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。 伯乐在线已在 GitHub 上发起「DotNet 资源大全中文版」的整理。欢迎扩散、欢迎加入。 ...

  • 基于STM32通过PWM驱动直流电机

    工程代码基于STM32F103C8T6,使用PWM输出驱动电机,电机驱动使用TB6612,通过按键控制电机速度,并且速度通过OLED显示屏进行显示 使用到的硬件:STM32F103C8T6最小系统板,四针脚OLED显示屏,直流电机,按键,TB6612电机驱动模块

  • 最新微信文章编辑器排版工具程序源码.rar

    最新微信文章编辑器排版工具程序源码.rar最新微信文章编辑器排版工具程序源码.rar最新微信文章编辑器排版工具程序源码.rar

  • 信息办公电信计费系统完整代码-netctossconformity.rar

    这个压缩包 "netctossconformity.rar" 包含了一套电信计费系统的完整代码,它是针对计算机专业学生或开发者的JSP源码资料。这套系统的设计旨在为电信运营商提供一个可靠、高效的计费解决方案。通常,这种系统会涉及到用户账户管理、费用计算、账单生成、支付处理以及数据报告等功能模块。在内容上,该资料包可能包括了前端用户界面和后端服务器逻辑的源代码,使用JSP(Java Server Pages)技术实现。前端可能会涵盖用户注册、登录、查看账单和支付历史等操作的用户界面,而后端则包含数据库交互、计费算法、用户验证和安全性措施等关键功能。对于学习者来说,这个资料包是一个宝贵的实践资源,可以帮助他们理解电信计费系统的工作原理,以及如何运用JSP技术开发复杂的商业应用。通过分析这些代码,可以加深对Java Web技术栈的理解,包括但不限于Servlet API、JDBC(Java Database Connectivity)、HTML/CSS/JavaScript,以及可能涉及的框架如Spring或Struts。此外,这个资料包也可能含有一些文档,例如系统设计说明、代码结构介绍、部

  • 交流电桥实验(95).zip

    交流电桥实验(95).zip

  • matlab基于四自由度机械臂的轨迹规划源码.zip

    优秀源码设计,详情请查看资源内容

  • MRU3-2保护技术简化电压继电器对称分量评估 SEG

    MRU3-2保护技术简化电压继电器对称分量评估 MRU3-2保护技术简单电压继电器,具有对称分量评估功能

  • 图3-7.zip

    图3-7.zip

  • 基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

    基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

Global site tag (gtag.js) - Google Analytics