#bencode #serialization #serde #deserialize #serde-derive

torrust-serde-bencode

一个基于Serde的Rust Bencode编码/解码库

1个不稳定版本

0.2.3 2023年9月25日

#9 in #序列化

Download history • Rust 包仓库 77/week @ 2024-03-13 • Rust 包仓库 48/week @ 2024-03-20 • Rust 包仓库 44/week @ 2024-03-27 • Rust 包仓库 82/week @ 2024-04-03 • Rust 包仓库 118/week @ 2024-04-10 • Rust 包仓库 128/week @ 2024-04-17 • Rust 包仓库 79/week @ 2024-04-24 • Rust 包仓库 34/week @ 2024-05-01 • Rust 包仓库 49/week @ 2024-05-08 • Rust 包仓库 137/week @ 2024-05-15 • Rust 包仓库 73/week @ 2024-05-22 • Rust 包仓库 105/week @ 2024-05-29 • Rust 包仓库 84/week @ 2024-06-05 • Rust 包仓库 96/week @ 2024-06-12 • Rust 包仓库 64/week @ 2024-06-19 • Rust 包仓库 198/week @ 2024-06-26 • Rust 包仓库

450 每月下载量

MIT 许可证

42KB
1K SLoC

Torrust Serde Bencode

一个基于 SerdeBencode 编码/解码库。

来源:由于上游仓库不活跃,从 https://github.com/toby/serde-bencode 分支。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
torrust-serde-bencode = "^0.2.3"
serde = "^1.0.0"
serde_derive = "^1.0.0"

用法

这是一个来自 examples/parse_torrent.rs 的简化的 .torrent 解析示例。如果您将此包编译为二进制文件,它将打印出任何发送到stdin的Torrent的元数据。


lib.rs:

此包是一个Rust库,用于使用 Serde 序列化框架处理bencode数据。

示例

use serde_derive::{Serialize, Deserialize};

#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
struct Product {
    name: String,
    price: u32,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let apple = Product {
        name: "Apple".to_string(),
        price: 130,
    };

    let serialized = serde_bencode::to_string(&apple)?;

    assert_eq!(serialized, "d4:name5:Apple5:pricei130ee".to_string());

    let deserialized: Product = serde_bencode::from_str(&serialized)?;

    assert_eq!(
        deserialized,
        Product {
            name: "Apple".to_string(),
            price: 130,
        }
    );

    Ok(())
}

依赖项

~140–385KB