AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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

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

关注

评论

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

PHP面向对象编程高级教程

白月书生

php 面向对象 面向对象设计

实时数据同步可以通过什么方式?

RestCloud

数据同步 ETL 数据集成

【AIOS实践】ACE平台部署easy-dataset

BoCloud博云

博云 aios easy dataset

千万级大表,如何做性能调优?

量贩潮汐·WholesaleTide

数据库 oracle

DeepSeek驱动的AI原生架构革新:低代码开发范式迁移与实践路径

电子尖叫食人鱼

低代码 DeepSeek

Studio 3T 2025.11 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

sysin

Studio 3T

VMware Cloud Foundation 9.0 正式版发布 - 领先的多云平台

sysin

vmware

F5 BIG-IQ 8.4.0 新增功能简介

sysin

F5

十年磨一剑,必出精品——Java面试常见场景题及参考答案!

程序员高级码农

Java ,面试 程序员‘

WWDC上的“AI答卷”,苹果的下一个杀手锏会是它吗?

腾讯云音视频

人工智能 wwdc 实时音视频

Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介

刘大猫

人工智能 svn 算法 大模型 tortoiseSVN

去中心化云算力将彻底改变云游戏行业

PowerVerse

去中心化 云算力 Web 3.0 3A云游戏

线程安全与锁机制深度解析

量贩潮汐·WholesaleTide

Java

罗永浩数字人刷屏背后,文心大模型成为直播行业的“剧本总导演”

脑极体

AI

为什么要来 IoTDB 用户大会?历年精彩回顾给你答案!

Apache IoTDB

MagicHub 开源全双工自然对话数据集;珞博智能完成数千万元融资,将发布多样化性格和长期记忆陪伴式硬件丨日报

声网

Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

最新六大专题类案裁判规则入驻 Alpha 系统

科技汇

商品中心—自研缓存框架的技术文档

不在线第一只蜗牛

FL Studio24对电脑的配置要求高吗? 如何调整FL Studio24设置优化运行速度?

阿拉灯神丁

宿主 编曲软件 水果FL Studio FL Studio2024 音乐创作

机顶灯单灯实用技巧分享|HD-2PLUS阴雨天人像布光5种进阶用法

科技热闻

华为阅读高校读书会已举办40场!为全国高校花粉带来社交化阅读体验

最新动态

IDM中文最新版免激活教程,IDM网络下载器永久免费使用的三种方法,IDM序列号激活工具

阿拉灯神丁

网络加速 IDM idm下载 视频下载工具

VMware vSphere 9.0 正式版发布 - 企业级工作负载平台

sysin

vSphere

VMware ESXi 9.0 正式版发布下载 - 领先的裸机 Hypervisor

sysin

esxi

SEO分页基本功

溪抱鱼

分页

赵宏 郭蕴 张健 | AI语境下“教什么”“怎么教”和“怎么学”的研究与实践 ——一种创新教学模式的提出

ModelWhale

赵宏

FactoryBean 和BeanFactory的傻傻的总是分不清?

不在线第一只蜗牛

spring

2025年AI画图生成工具排行榜,在线生成无限创意!

职场工具箱

人工智能 AI 在线白板 AIGC AI绘画

VMware vCenter Server 9.0 正式版发布下载 - 集中管理 vSphere 环境

sysin

vcenter

Palo Alto PAN-OS 10.2.5 for ESXi & KVM 全功能试用版 (包含 TP URL WF 等高级订阅许可) 2025 年更新版

sysin

PAN-OS

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