3个版本

0.1.2 2022年6月29日
0.1.1 2022年6月28日
0.1.0 2022年6月28日

2259解析器实现

23 每月下载量
midwest_mainline 中使用

MIT 许可证

12KB
148

juicy_bencode

使用Nom库编写的bencode小解析器。 Nom逐字节读取输入,而bencode正是如此多汁的输入!

该软件包提供更多单独的解析功能,用于解析单个bencode项或只是一个blob。

TL; DR

您有一个包含完全合法文件种子信息的bencoded blob,

// pub enum BencodeItemView<'a> {
//     Integer(i64),
//     ByteString(&'a [u8]),
//     List(Vec<BencodeItemView<'a>>),
//     Dictionary(BTreeMap<&'a [u8], BencodeItemView<'a>>),
// }

use juicy_bencode::parse_bencode_dict;
fn main () -> Result<(), Box<dyn Error>>{
    // the library uses byte slices
    let text: &[u8] = input();
    // now you can do totally legal things with the info!
    let parsed_tree: BencodeItemView = parse_bencode_dict(text)?;
}

依赖关系

~1.3–2MB
~39K SLoC