#bson #byte #packet #networking #serde

tora

一个轻量级的基于字节的序列化和反序列化库

7 个版本

0.1.7 2024年7月18日
0.1.6 2024年7月18日
0.1.5 2023年12月14日
0.1.2 2023年4月7日
0.1.1 2023年3月23日

#1069 in 编码

Download history 2/week @ 2024-06-30 199/week @ 2024-07-14 15/week @ 2024-07-21 41/week @ 2024-07-28 1/week @ 2024-08-04

每月256 次下载

自定义许可证

19KB
424

Tora

一个轻量级的基于字节的序列化和反序列化库


*零-serde 解决方案*

示例

网络数据传输

主机

use std::io;
use std::net::TcpListener;

use tora::write::ToraWrite;
use tora::WriteStruct;

#[derive(WriteStruct)]
struct Message {
    sender: String,
    content: String,
}

fn main() -> io::Result<()> {
    let listener = TcpListener::bind("127.0.0.1:12345")?;
    let (mut conn, _) = listener.accept()?;

    let message = Message {
        sender: "John".to_string(),
        content: "Hello, world!".to_string(),
    };
    conn.writes(&message)
}

客户端

use std::io;
use std::net::TcpStream;

use tora::read::ToraRead;
use tora::ReadStruct;

#[derive(ReadStruct)]
struct Message {
    sender: String,
    content: String,
}

fn main() -> io::Result<()> {
    let mut stream = TcpStream::connect("127.0.0.1:12345")?;
    let Message { sender, content } = stream.reads()?;
    println!("{}: {}", sender, content);
    Ok(())
}

依赖项

~295–750KB
~18K SLoC