Thanks to visit codestin.com
Credit goes to lib.rs

#serialization #byte #deserialize

no-std bytes-kman

serialize and deserialize bytes, a simple way to comunicate to other computer or to save state!

24 releases

0.3.1 Sep 23, 2025
0.3.0 May 20, 2023
0.2.0 May 13, 2023
0.1.20 Apr 23, 2023
0.1.9 Dec 31, 2022

#882 in Encoding

Codestin Search App

1,154 downloads per month
Used in 3 crates

GPL-3.0 license

59KB
1.5K SLoC

Bytes

Crates.io

is used for serialize and deserialize

is useful because is more faster and smaller then json!
But not human readable!

Examples

use bytes_kman::prelude::*;

#[derive(Bytes)]
pub struct Package{
    id: u16,
    message: String
}


pub fn main(){
    let pak = Package{
        id: 21
        message: String::from("This is a message")
    };

    let mut bytes = pak.to_bytes();
    bytes.reverse();

    let other = Package::from_bytes(&mut bytes).unwrap();

    assert_eq!(pak, other);
}
use bytes_kman::prelude::*;

pub fn main(){
    let num = 32u8;
    let bytes = num::to_bytes();
    assert_eq!(bytes; vec![32]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let num = 32;
    let bytes = num::to_bytes();
    assert_eq!(bytes; vec![32, 0, 0, 0]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let string = "Hello World!".to_string();
    let bytes = num::to_bytes();
    //                    this is the string length 'H' 'e'  'l'  'l'  'o'  ' ' 'W' 'o'  'r'  'l'  'd' '!'
    //                     >>>>>>>>>>>>^<<<<<<<<<<   ^   ^    ^    ^    ^    ^   ^   ^    ^    ^    ^   ^
    assert_eq!(bytes; vec![12, 0, 0, 0, 0, 0, 0, 0, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]) 
}
use bytes_kman::prelude::*;

pub fn main(){
    let string = "Hello World!".to_string();

    let mut bytes = num::to_bytes();
    bytes.reverse(); // when reading is inversed

    let other = String::from_bytes(&mut bytes).unwrap() // if don't have enough bytes will result in an error!
    // bytes = []
    // bytes will be consumed!
    // other = "Hello World!"
    assert_eq!(string, other) 
}

Rust toolchain: stable 1.65.0

Dependencies

~1.5MB
~40K SLoC