MessagePack
外观
此条目没有列出任何参考或来源。 (2023年7月26日) |
| 原作者 | Sadayuki Furuhashi |
|---|---|
| 编程语言 | Various languages |
| 操作系统 | Any |
| 平台 | Cross-platform |
| 类型 | Data interchange |
| 许可协议 | Apache License |
| 网站 | msgpack |
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)
其他格式
[编辑]参考资料
[编辑]- ^ MessagePack specification: Type system. MessagePack project. [2026-10-31] (英语).