QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Microsoft 开源跨平台的序列化库——Bond

  • 2015-02-12
  • 本文字数:866 字

    阅读完需:约 3 分钟

上个月 Microsoft 开源了 Bond ,一个跨平台的模式化数据处理框架。Bond 支持跨语言的序列化 / 反序列化,支持强大的泛型机制能够对数据进行有效地处理。该框架在 Microsoft 公司内部的高扩展服务中得到了广泛的应用。目前该项目已经基于宽松的 MIT 许可开源在了 GitHub 上,当前版本支持 C++、C#和 Python,可运行在 Linux、OS-X 和 Windows 平台上。 Bond 的编译器完全是使用 Haskell 编写的。

Bond 与其他序列化系统具有很多相似性,例如 Google Protocol Buffers Thrift 以及 Avro

  • Bond 使用 IDL 风格的语言定义消息
  • 它会将所有的 Bond 数据类型映射到本地语言数据类型

但是 Bond 的实现有一个很大的不同:它并没有硬编码类型映射。用户能够以插件的方式定制核心架构逻辑之外的内容——是从 Bond 模式还是从自定义的类型序列化、有线格式是什么、是否将自定义元数据放到有效负载中等等。例如,在 C++ 中默认是 std::vector 这样的 STL 容器,但是用户能够很容易地映射自定义的类型——在一个生成的 C++ 结构体中使用 Python 的 boost::multi 索引容器或者在一个生成的 C++ 类中将一个 unit64 模式域映射为一个 System.DateTime 域。Bond 生成的 C++ 结构体还能使用自定义的分配器。

Stack Overflow 上的一个帖子对 Bond 和 Google Protocol Buffers 做了一个非常好的比较:

优点:

  • Bond 支持泛型
  • Bond 有不同的类型用于表示集合:vector, map, list
  • Bond 支持类型安全的惰性反序列化 (bonded)
  • Bond 支持多种格式 (快速二进制、紧凑二进制、XML 和 JSON) 以及封送与转码

缺点:

  • Bond 不支持不同类型的固定、可变整数编码。在 Bond 中整数如何编码是由输出格式(快速二进制还是紧凑二进制)决定的,但是在 Protocol Buffers 中整数类型始终有固定的大小:fixed32 和 fixed64。
  • Bond 不支持 union 类型 (Protocol Buffers 支持)
  • Bond 并没有 Java 实现

另外,在这个 Reddit 的公告中有很多与 Bond 的实现和能力相关的答案。

考虑到现在正在有越来越多的人以微服务的形式使用 SOA,数据编组 / 解组的问题变得越来越重要。对于已有的序列化系统而言,Bond 可以成为一个非常有用的候选方案。

2015-02-12 09:214443
用户头像

发布了 321 篇内容, 共 123.3 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

理解文字识别:一文读懂OCR商业化产品的算法逻辑

合合技术团队

人工智能 算法 文字识别 OCR #大数据

和鲸科技医疗智能体上线联想擎天平台:赋能医疗服务效率与质量

ModelWhale

axure rp 9怎么转换为中文版?axurerp9中文版安装包 附授权码

Rose

城市综合治理系统(源码+文档+讲解+演示)

深圳亥时科技

【GreatSQL优化器-18】GROUP_INDEX_SKIP_SCAN

GreatSQL

来看看现在go开发岗10k的面试强度

王中阳Go

Go 面试 后端 中小厂

超级人工智能、具身智能与大世界模型:AI的未来之路

测试人

人工智能

HAHM全球营销新范式:安全、创新与合作共赢的数字化未来!从纽约到全球84国,揭秘哈姆如何重构营销生态与财富机遇

区块链开发团队DappNetWork

2025南京软件产业博览会(南京软博会)

AIOTE智博会

软件展 软博会 南京软博会

用友BIP供应网络计划发布,驱动10000+节点的全球一张网智能运营

用友BIP

AI 数智化 用友BIP 数智采购 供应网络计划

精准审查,规避风险:中烟创新智能合同审查系统为企业保驾护航

中烟创新

反向海淘代购系统平台总被骂"二次收费"?搭建者必看的5大自检清单与解决方案

代码忍者

借助淘宝拍立淘API,打造超便捷商品识别引擎

tbapi

淘宝API接口 淘宝图片搜索接口 淘宝拍立淘接口

DeepSeek 3FS 架构分析和思考(上篇)

火山引擎开发者社区

ERP 价值化国产替代白皮书正式发布!

用友BIP

AI 数智化 用友BIP ERP价值化国产替代

智能制造:物联网和自动化之间的关系

积木链小链

数字化 智能制造 工业自动化

Web3的成功离不开什么?

PowerVerse

区块链 web3 dapps

扫码联网系统(源码+文档+讲解+演示)

深圳亥时科技

替代 Airtable / 飞书表格?用零代码构建多对多关系的任务管理系统

NocoBase

开源 低代码 零代码 表格 任务管理系统

数据驱动进化:AI Agent如何重构手机交互范式?

数据堂

人工智能 数据采集 数据集 大模型 AI Agent

原生APP和混合APP在性能方面的比较

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包

给Web开发者的HarmonyOS指南02-布局样式

苏杰豪

鸿蒙 前端

哪里有cad2024详细激活教程?Autodesk AutoCAD 2024安装教程分享

Rose

请查收官方通知!这5场课程,助您成为数智财务高端人才!

用友智能财务

AI 财务 会计

图解「模型上下文协议(MCP)」:从与传统 API 的比较入手

Baihai IDP

AI agent LLM MCP 模型上下文协议

graphpad prism 10中文版 含注册机 | 数据分析绘图软件

Rose

PowerVerse QA:打造面向全球的AI+DePIN+Metaverse+Web3.0 DeCloud生态服务

PowerVerse

云算力 云算力挖矿 去中心化云算力 算力生态

给Web开发者的HarmonyOS指南01-文本样式

苏杰豪

鸿蒙 前端 HarmonyOS NEXT

openEuler 全栈式 AI 推理方案 使能 AI 普惠千行百业,推动企业实现数智化转型

极客天地

专家管理系统(源码+文档+讲解+演示)

深圳亥时科技

依赖腾讯云的音视频服务能力,构建一个高可用的在线直播平台

为自己带盐

腾讯云 直播

Microsoft开源跨平台的序列化库——Bond_微软_Boris Lublinsky_InfoQ精选文章