torro/lib.rs
1//! A **correct** and **easy-to-use** BitTorrent library
2//!
3//! ## Objectives
4//!
5//! - Easy-to-use library interface that assumes by default with customisability
6//! if needed
7//! - Extremely low dependency count (none ideally)
8//! - High amount of documentation, no data structures/functions implemented
9//! without a line of docstring
10//! - Correctness with the BitTorrent protocols
11//!
12//! ## Development/Production Status
13//!
14//! Actively developed but heavily work-in-progress with only `.torrent` to
15//! user-friendly [Torrent](crate::torrent::Torrent) struct currently fully
16//! supported, see the torro [roadmap](https://github.com/Owez/torro/issues/20)
17//! for future plans.
18//!
19//! ## Final notes
20//!
21//! - If you wish to use torro without using the [Torrent](crate::torrent::Torrent)
22//! structure, you may use the publically exposed lower-level functions that are
23//! not attached to it (like [bencode::parse] for example)
24
25mod utils;
26
27pub mod bencode;
28pub mod error;
29pub mod torrent;
30
31/// [BitTorrent prefix](https://wiki.theory.org/BitTorrentSpecification#peer_id)
32/// for all torro-based clients.
33///
34/// **If this library is forked and used heavily in a production enviroment, it
35/// is advised to change this**
36pub const CLIENT_PREFIX: &str = "TO";