5个版本 (稳定版)

1.3.0 2024年4月30日
1.0.1 2023年7月21日
1.0.0 2021年8月17日
0.4.7 2021年2月2日
0.3.4 2017年3月26日

编码类别中排名第324

Download history 28774/week @ 2024-04-19 29305/week @ 2024-04-26 25650/week @ 2024-05-03 28245/week @ 2024-05-10 33643/week @ 2024-05-17 32189/week @ 2024-05-24 31676/week @ 2024-05-31 36291/week @ 2024-06-07 30412/week @ 2024-06-14 28294/week @ 2024-06-21 32764/week @ 2024-06-28 39440/week @ 2024-07-05 33326/week @ 2024-07-12 67639/week @ 2024-07-19 60471/week @ 2024-07-26 37243/week @ 2024-08-02

每月下载量207,353
206crate中使用(直接使用80个)

MIT许可证

230KB
5K SLoC

RMP - Rust MessagePack

RMP是一个完整的纯Rust MessagePack实现。MessagePack是一种紧凑的自描述二进制序列化格式。

本项目由三个crate组成

  • RMP-Serde (文档) — 通过Serde进行简单的序列化和反序列化。
  • RMP-Value (文档) — 一个通用的Value枚举,可以存储任何MessagePack类型。允许在没有已知模式的情况下反序列化任意消息。
  • RMP (文档) — 读取/写入编码数据的底层函数。

功能

  • 方便且强大的API

    RMP设计得轻量级且直观。有一个支持Serde的高级API,它为您提供了使用derive属性编码/解码Rust数据结构的方便接口。还有低级API,它让您可以完全控制数据编码/解码过程,无需标准支持且无需堆分配。

  • 零拷贝值解码

    RMP允许以零拷贝的方式从缓冲区解码字节。解析是在安全Rust中实现的。

  • 健壮、稳定且经过测试

    本项目使用TDD和CI进行开发,因此发现的任何错误都将得到修复,而不会破坏现有功能。

为什么选择MessagePack?

它比JSON更小,更易于解析。编码的数据是自描述的和可扩展的,无需使用任何模式定义。它支持与JSON相同的数据类型,加上二进制数据、非字符串映射键、所有浮点值和64位数字。Msgpack值使用<length><data>编码,因此它们可以安全地连接并从流中读取。

MessagePack与CBOR类似,但数据类型更简单(没有大数、十进制浮点数、日期或无限长度集合等)

要求

  • 最新稳定的Rust版本,建议使用Rust,最好通过rustup安装。

Build Coverage Status

依赖项

~175–440KB