2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:214842
用户头像

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

关注

评论

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

从互联网女皇 AI 趋势报告,看大模型 API 服务

融云 RongCloud

DataGrip2025中文激活版 附DataGrip永久许可证

Rose

CAD图纸如何批量打印?详细教程来了

在路上

cad看图 cad软件 CAD看图王 CAD、

TikTok直播没人看?被限流了怎么解决?

Ogcloud

直播专线 tiktok直播 tiktok直播专线 tiktok直播网络 tiktok直播加速

华为大咖答疑丨金融行业数智化转型需要注意哪些问题?该如何解决?

轶天下事

EndNote 2025 :全新的 AI 功能,加快研究发现流程

Rose

还在用 Jmeter 做压测?试试 oha 吧!你会毫不犹豫的爱上它!

左诗右码

HarmonyOS应用闪屏问题性能优化一

李洋-蛟龙腾飞

iptables- MARK与CONNMARK目标

天翼云开发者社区

网络

CAD面积如何快速测量?详细步骤来了

在路上

cad cad看图 CAD看图王

专业的Mac菜单栏管理工具 Bartender 5

Rose

IPLC/CN2/BGP/CIA与普通网络线路差异对比

Ogcloud

BGP 企业组网 企业网络 IPLC 国际IPLC专线

融云上线大模型 API 服务,20 万 Token 免费送

融云 RongCloud

大数据-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看

武子康

大数据 hadoop mapreduce hive

AI 技术在出版社信息化中的应用

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

软件外包公司 AI技术应用 出版社

vivo Pulsar万亿级消息处理实践(1)-数据发送原理解析和性能调优

vivo互联网技术

Java 大数据 后端 服务器 消息队列

Linux下如何使用perf/gdb/pstack分析性能与问题排查

天翼云开发者社区

弹性负载均衡

BOE(京东方)控股子公司武汉京东方回购少数股东股权 归母权益进一步提升

爱极客侠

融云大模型 API 服务上线,专注业务创新,底层交给融云

融云 RongCloud

从互联网女皇 AI 趋势报告,看融云大模型 API 服务

融云 RongCloud

《长安的荔枝》中隐藏的“算法思维”

博文视点Broadview

AI API、AI 聊天助手,融云两大 AI 服务助力应用智能化转型

融云 RongCloud

HarmonyOS应用闪屏问题性能优化三

李洋-蛟龙腾飞

大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI

武子康

大数据 hadoop mapreduce hive

华为开发者空间 - 自主编程之Cline×DeepSeek的智能融合探索

华为云开发者联盟

人工智能 华为云ModelArts 华为开发者空间

为什么架构师都在偷偷练系统思维?

秃头小帅oi

网络安全自动化:最需要自动化的 12 个关键功能

天翼云开发者社区

安全

软件测试 | 使用 Playwright 实现滑动验证码

测试人

软件测试

和鲸科技亮相 2025 河南省人工智能大会,共绘“气象+AI”新图景

ModelWhale

人工智能 科学智能 河南省人工智能大会

HarmonyOS应用闪屏问题性能优化二

李洋-蛟龙腾飞

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