3个不稳定版本
0.2.8 | 2024年3月17日 |
---|---|
0.1.0 | 2023年10月31日 |
#934 in 编码
94 每月下载量
50KB
1.5K SLoC
一个轻量级的库,用于将类型序列化为MsgPack。
为了限制二进制膨胀,这个库不使用serde。相反,我们提供了[MsgPack]和[MsgUnpack]特质,这些特质可以用于大多数类型。
使用方法
我们还提供了像[pack_vec]和[unpack_slice]这样的函数,用于在rust类型和msgpack字节之间进行转换,但也可以很容易地定义自己的。
以下是一个异步打包函数的简单示例
use msgpck::MsgPack;
trait AsyncWrite {
async fn write(&mut self, bytes: &[u8]);
}
async fn async_pack(writer: &mut impl AsyncWrite, msg: &impl MsgPack) {
for piece in msg.pack() {
writer.write(piece.as_bytes()).await;
}
}
与rmp_serde
的兼容性
我们的目标是能够反序列化使用rmp_serde序列化的任何值。
待办事项:决定我们是否要更改枚举的序列化表示形式
依赖项
~0.3–1MB
~20K SLoC