msgpck 0.2.8

A no-std and async compatible msgpck de/serializer
Documentation

A light-weight library for serializing/deserializing types as MsgPack.

To limit binary bloat, this library doesn't use serde. Insetead, we provide the [MsgPack] and [MsgUnpack] traits, which can be derived for most types.

Usage

We also provide functions like [pack_vec] and [unpack_slice] to convert between rust types and msgpack bytes, but it's easy to define your own.

Here is a simple example of an async pack function:

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;
}
}

Compatibility with rmp_serde

We aim to be able to deserialize any value serialized using rmp_serde.

TODO: decide if we're gonna change serialized representation of enums