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.
``` use wire_framed::prelude::*;
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".tostring(), description: "John is a legend".tostring(), created_at: 1234567890, };
let frame = foo.into_frame();
send_to_socket(frame)
}
fn recv() -> Result<(), std::io::Error> { let bytes = recvfromsocket(); let foo = Foo::from_frame(bytes)?;
// process foo
} ```