#messagepack #deserialize #serialization #shapely #reflection

shapely-msgpack

MessagePack serialization and deserialization for Shapely types

4 stable releases

Uses new Rust 2024

new 3.1.0 Mar 31, 2025
3.0.0 Mar 11, 2025
2.0.1 Mar 11, 2025

#2480 in Encoding

Download history 150/week @ 2025-03-05 178/week @ 2025-03-12 3/week @ 2025-03-19

331 downloads per month

MIT/Apache

215KB
4.5K SLoC

shapely-msgpack

experimental free of syn crates.io documentation MIT/Apache-2.0 licensed

A crate for deserializing MessagePack data into Shapely structures.

Example

use shapely::Shapely;
use shapely_msgpack::from_msgpack;

#[derive(Debug, Shapely, PartialEq)]
struct User {
    id: u64,
    username: String,
}

// MessagePack binary data (equivalent to {"id": 42, "username": "user123"})
let msgpack_data = [
    0x82, 0xa2, 0x69, 0x64, 0x2a, 0xa8, 0x75, 0x73,
    0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0xa7, 0x75,
    0x73, 0x65, 0x72, 0x31, 0x32, 0x33
];

let mut partial = User::partial();
from_msgpack(&mut partial, &msgpack_data).expect("Failed to parse MessagePack data");

let user = partial.build::<User>();
assert_eq!(user, User { id: 42, username: "user123".to_string() });

Funding

Thanks to Namespace for providing fast GitHub Actions workers:

License

Licensed under either of:

at your option.

Dependencies