19 releases (10 breaking)
0.11.1 | May 1, 2023 |
---|---|
0.10.0 | Mar 13, 2023 |
0.8.1 | Aug 4, 2022 |
0.7.1 | Jul 17, 2022 |
0.2.1 | May 25, 2018 |
#779 in Parser implementations
143 downloads per month
Used in 2 crates
705KB
5.5K
SLoC
lava_torrent
lava_torrent
is a library for parsing/encoding/creating bencode and .torrent files.
NOTE: lava_torrent
is now in maintenance mode.
Bugs will still be fixed, but no new features will be released.
If you need something, feel free to fork.
Quick Start
Read a torrent (v1) and print it and its info hash.
use lava_torrent::torrent::v1::Torrent;
let torrent = Torrent::read_from_file("sample.torrent").unwrap();
println!("{}", torrent);
println!("Info hash: {}", torrent.info_hash());
Create a torrent (v1) from files in a directory and save the .torrent file.
use lava_torrent::torrent::v1::TorrentBuilder;
let torrent = TorrentBuilder::new("dir/", 1048576).build().unwrap();
torrent.write_into_file("sample.torrent").unwrap();
Bencode (de)serialization.
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);
More Info
Please check the documentation.
License: MIT OR Apache-2.0
Dependencies
~2.2–3MB
~63K SLoC