juicy_bencode

Crates.iojuicy_bencode
lib.rsjuicy_bencode
version0.1.2
sourcesrc
created_at2022-06-28 21:19:25.003284
updated_at2022-06-29 19:54:51.015514
descriptionA little parser for bencode using the Nom library
homepage
repositoryhttps://github.com/Internal-Compiler-Error/juicy_bencode
max_upload_size
id615049
size24,612
Liang Wang (Internal-Compiler-Error)

documentation

README

juicy_bencode

A little parser for bencode using the Nom library. Nom eats input byte by byte, and bencode is such juicy input!

The crate provides both more individual parses for parsing out individual bencode items or just a blob.

TL; DR

You have a bencoded blob containing the torrent information for totally legal files,

// pub enum BencodeItemView<'a> {
//     Integer(i64),
//     ByteString(&'a [u8]),
//     List(Vec<BencodeItemView<'a>>),
//     Dictionary(BTreeMap<&'a [u8], BencodeItemView<'a>>),
// }

use juicy_bencode::parse_bencode_dict;
fn main () -> Result<(), Box<dyn Error>>{
    // the library uses byte slices
    let text: &[u8] = input();
    // now you can do totally legal things with the info!
    let parsed_tree: BencodeItemView = parse_bencode_dict(text)?;
}

Commit count: 8

cargo fmt