Expand description
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
}
Re-exports§
pub use wire_framed_core;
pub use wire_framed_core::bytes;
Modules§
Structs§
- Bytes
- A cheaply cloneable and sliceable chunk of contiguous memory.
- Bytes
Mut - A unique reference to a contiguous slice of memory.
- Frame
Codec - Codec type for [
Message
] that implementstokio_util::codec::Decoder
andtokio_util::codec::Encoder
.
Traits§
- Buf
- Read bytes from a buffer.
- BufMut
- A trait for values that provide sequential write access to bytes.
- From
Frame - Trait for converting a frame into `Self.
- Into
Frame - Trait for converting a
Self
into a frame.