#binary-protocol #serialization-protocols #string

derse

A simple binary serialization protocol for Rust

28 releases

0.1.33 Jan 23, 2025
0.1.32 Jan 20, 2025
0.1.31 Nov 12, 2024
0.1.28 Aug 6, 2024
0.1.4 Apr 25, 2024

#886 in Encoding

Download history 53/week @ 2025-06-29 57/week @ 2025-07-06 71/week @ 2025-07-13 111/week @ 2025-07-20 144/week @ 2025-07-27 55/week @ 2025-08-03 51/week @ 2025-08-10 45/week @ 2025-08-17 53/week @ 2025-08-24 43/week @ 2025-08-31 35/week @ 2025-09-07 24/week @ 2025-09-14 50/week @ 2025-09-21 20/week @ 2025-09-28 43/week @ 2025-10-05 35/week @ 2025-10-12

148 downloads per month

MIT/Apache

64KB
1.5K SLoC

derse

Rust Crates.io Version codecov

A simple binary serialization protocol for Rust.

Usage

To use this library, add the following to your Cargo.toml:

[dependencies]
derse = "0.1"

Then, you can import and use the components as follows:

use derse::{Deserialize, DownwardBytes, Serialize};

// 1. serialization for basic types.
let ser = "hello world!";
let bytes = ser.serialize::<DownwardBytes>().unwrap();
let der = String::deserialize(&bytes[..]).unwrap();
assert_eq!(ser, der);

// 2. serialization for custom structs.
#[derive(Debug, Default, Deserialize, Serialize, PartialEq)]
pub struct Demo {
    a: i32,
    b: String,
    c: Vec<String>,
}
let ser = Demo::default();
let bytes = ser.serialize::<DownwardBytes>().unwrap();
let der = Demo::deserialize(&bytes[..]).unwrap();
assert_eq!(ser, der);

Dependencies

~2.3–3MB
~72K SLoC