Crates.io | bendecode |
lib.rs | bendecode |
version | 0.1.3 |
source | src |
created_at | 2023-09-14 05:34:22.276706 |
updated_at | 2023-09-14 11:48:15.197628 |
description | bendecode is a simple bencode parser specifically made for torrent files. It converts the file provided into a format acceptable in rust(structs and enums). |
homepage | |
repository | https://www.github.com/mohamedarish/bendecode |
max_upload_size | |
id | 972282 |
size | 39,957 |
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.