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.
Read a torrent ([v1]) and print it and its info hash.
```rust use lava_torrent::torrent::v1::Torrent;
let torrent = Torrent::readfromfile("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.
```rust use lava_torrent::torrent::v1::TorrentBuilder;
let torrent = TorrentBuilder::new("dir/", 1048576).build().unwrap(); torrent.writeintofile("sample.torrent").unwrap(); ```
Bencode (de)serialization.
```rust use lava_torrent::bencode::BencodeElem;
let bytes = "d4:spam4:eggse".asbytes(); let dict = BencodeElem::Dictionary([("spam".toowned(), "eggs".into())].into());
asserteq!(BencodeElem::frombytes(bytes).unwrap()[0], dict); assert_eq!(dict.encode(), bytes);
assert!(dict.writeintofile("/tmp/foo").isok()); asserteq!(BencodeElem::from_file("/tmp/foo").unwrap()[0], dict); ```
Please check the [documentation].
License: MIT OR Apache-2.0