#codec #binary #decoding #framed #frame #wire

wire-framed-core

一个将结构编码和解码为二进制数据格式的库

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

Download history 2/week @ 2024-03-13 5/week @ 2024-03-27 9/week @ 2024-04-03 1/week @ 2024-04-17 53/week @ 2024-04-24

每月123次下载
用于 wire-framed

自定义许可

30KB
724

wire-framed

wire-framed是一个使用自定义二进制协议进行帧编码和解码的库。它优先考虑易用性。

它围绕两个特性 FromFrameIntoFrame 展开。这些特性可以使用在 utils 模块中提供的工具手动实现,也可以使用 EncodingDecoding 宏自动实现。

使用方法

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