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 |
|
在编码类别中排名第324
每月下载量207,353
在206个crate中使用(直接使用80个)
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类似,但数据类型更简单(没有大数、十进制浮点数、日期或无限长度集合等)
要求
依赖项
~175–440KB