5 releases
| 0.1.4 | Jun 18, 2023 |
|---|---|
| 0.1.3 | Jun 4, 2023 |
| 0.1.2 | May 15, 2023 |
| 0.1.1 | May 15, 2023 |
| 0.1.0 | May 15, 2023 |
#10 in #framed
74 downloads per month
Used in wire-framed
15KB
256 lines
wire-framed
wire-framed is a library for encoding and decoding frames using a custom binary protocol. It prioritizes ease-of-use.
It reolves around two traits FromFrame and IntoFrame. These traits can be manually implemented relatively easily using
the utilities provided in the utils module or automatically using the Encoding and Decoding macros.
Usage
use wire_framed::prelude::*;
#[derive(Debug, Encoding, Decoding, PartialEq, Eq)]
pub struct Foo {
pub id: u32,
pub name: String,
pub description: String,
pub created_at: u64,
}
fn send() -> Result<(), std::io::Error> {
let foo = Foo {
id: 1,
name: "John".to_string(),
description: "John is a legend".to_string(),
created_at: 1234567890,
};
let frame = foo.into_frame();
send_to_socket(frame)
}
fn recv() -> Result<(), std::io::Error> {
let bytes = recv_from_socket();
let foo = Foo::from_frame(bytes)?;
// process foo
}
Dependencies
~1.5MB
~37K SLoC