9个版本 (4个破坏性更新)
0.5.0 | 2023年7月3日 |
---|---|
0.4.0 | 2023年5月30日 |
0.3.0 | 2023年5月30日 |
0.2.0 | 2023年5月30日 |
0.1.4 | 2023年5月17日 |
#9 in #framed
每月123次下载
用于 wire-framed
30KB
724 行
wire-framed
wire-framed是一个使用自定义二进制协议进行帧编码和解码的库。它优先考虑易用性。
它围绕两个特性 FromFrame
和 IntoFrame
展开。这些特性可以使用在 utils
模块中提供的工具手动实现,也可以使用 Encoding
和 Decoding
宏自动实现。
使用方法
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
}
依赖关系
~2.4–3.5MB
~54K SLoC