19个版本 (10个破坏性版本)
0.11.1 | 2023年5月1日 |
---|---|
0.10.0 | 2023年3月13日 |
0.8.1 | 2022年8月4日 |
0.7.1 | 2022年7月17日 |
0.2.1 | 2018年5月25日 |
#482 在 解析器实现
每月167次下载
用于 2 crates
705KB
5.5K SLoC
lava_torrent
lava_torrent
是一个用于解析/编码/创建bencode和.torrent文件的库。
注意: lava_torrent
目前处于维护模式。 仍然会修复错误,但不会发布新功能。如果您需要什么,请随意分支。
快速入门
读取一个torrent(v1)并打印它及其信息散列。
use lava_torrent::torrent::v1::Torrent;
let torrent = Torrent::read_from_file("sample.torrent").unwrap();
println!("{}", torrent);
println!("Info hash: {}", torrent.info_hash());
从目录中的文件创建一个torrent(v1)并保存.torrent文件。
use lava_torrent::torrent::v1::TorrentBuilder;
let torrent = TorrentBuilder::new("dir/", 1048576).build().unwrap();
torrent.write_into_file("sample.torrent").unwrap();
Bencode(反)序列化。
use lava_torrent::bencode::BencodeElem;
let bytes = "d4:spam4:eggse".as_bytes();
let dict = BencodeElem::Dictionary([("spam".to_owned(), "eggs".into())].into());
assert_eq!(BencodeElem::from_bytes(bytes).unwrap()[0], dict);
assert_eq!(dict.encode(), bytes);
assert!(dict.write_into_file("/tmp/foo").is_ok());
assert_eq!(BencodeElem::from_file("/tmp/foo").unwrap()[0], dict);
更多信息
请查看文档。
许可:MIT OR Apache-2.0
依赖项
~2.2–3MB
~63K SLoC