跳转到内容

MessagePack

本页使用了标题或全文手工转换
维基百科,自由的百科全书
MessagePack
原作者Sadayuki Furuhashi
编程语言Various languages
操作系统Any
平台Cross-platform
类型Data interchange
许可协议Apache License
网站msgpack.org

MessagePack是一种计算机数据交换格式。它是一种二进制形式,用于表示简单的数据结构,如数组和关系数组。MessagePack 旨在尽可能紧凑和简单。官方实现有多种语言版本,如C、C++、C#、D、Erlang、Go、Haskell、Java、JavaScript ( NodeJS )、Lua、OCaml、Perl、PHP、Python、Ruby、Scala、Smalltalk和Swift。

官方类型系统将UTF-8字符串(String)与字节数组(Binary)分为不同类型,另以Extension表示带有类型标记的应用资料;应用可利用扩展类型保存未由基本类型直接表达的资料。这些能力不等同于只把JSON文字改用二进制编码。[1]

示例

[编辑]

官网宣传表明,我们可以把一个 json 表示的对象轻松用二进制转换,以使得解析更快且传输规模更小:

Json(一共占据了 27 个字节): {"compact":true,"schema":0}

MessagePack(每一个仅仅占据一个字节,一共 18 个字节): 82(2-elements object), a7(string with length 7), c, o, m, p, a, c, t, c3(true), a6(string with length 6), s, c, h, e, m, a, 00(integer 0)

其他格式

[编辑]

参考资料

[编辑]
  1. ^ MessagePack specification: Type system. MessagePack project. [2026-10-31] (英语). 

外部链接

[编辑]