An decoder for Bencode to rust standard format
The BitTorrent specification v1 is used to parse the .torrent file As v2 is currently not being used actively and instead a hybrid of both is used
More about the torrent file specification can be read here
The file structure used in this project can be found here
Add bendecode
as a dependency in your Cargo.toml
:
bendecode = "0.1.3"
Or use cargo to add the latest version to your dependencies
cargo add bendecode
bendecode holds your hand through the whole decoding process by handling everything
use bendecode::torrent::Torrent;
let file =
std::fs::read_to_string("torrent_file.torrent").expect("Cannot read the file");
// The file may not always be read using read_to_string
// as torrent files sometimes contain invalid UTF-8
// Hence it is recommended to read the file as bytes by using fs::read()
// and then making a &str by joining the Vec<u8> into a &str
let torrent = Torrent::from(file).expect("Cannot parse torrent");
Contributions re greatly appreciated! Read CONTRIBUTING.md to know the contributing guidelines.