#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(not(feature = "ffi"), deny(unsafe_code))]
#![warn(missing_docs)]
#![warn(rust_2018_idioms)]
#![allow(clippy::needless_range_loop)]
#[macro_use]
extern crate alloc;
pub mod bencode;
pub mod bitfield;
pub mod crypto;
pub mod dht;
pub mod disk_cache;
pub mod engine;
pub mod error;
pub mod links;
pub mod magnet;
pub mod metainfo;
pub mod monitoring;
pub mod peer_id;
pub mod pex;
pub mod picker;
pub mod piece;
pub mod platform;
pub mod receipt;
pub mod scheduler;
pub mod session;
pub mod state;
pub mod swarm;
pub mod tracker;
pub mod wire;
#[cfg(feature = "ffi")]
pub mod ffi;
#[cfg(feature = "std")]
pub mod host_std;
pub use engine::{Engine, EngineConfig, EngineEvent};
pub use error::{Error, Result};
pub use metainfo::InfoHash;
pub use platform::{Host, LogLevel, NetAddr};
pub mod consts {
pub const BLOCK_LEN: u32 = 16 * 1024;
pub const PSTR: &[u8] = b"BitTorrent protocol";
pub const DEFAULT_PORT: u16 = 6881;
pub const DEFAULT_PIECE_LEN: u32 = 256 * 1024;
pub const VERSION_TAG: &str = "TB10";
pub const DHT_BOOTSTRAP: &[(&str, u16)] = &[
("router.bittorrent.com", 6881),
("router.utorrent.com", 6881),
("router.transmissionbt.com", 6881),
("dht.bitcomet.com", 6881),
("dht.libtorrent.org", 25401),
];
pub const TRACKERS_LIST_URL: &str = "https://cf.trackerslist.com/best.txt";
pub const DEFAULT_TRACKERS: &[&str] = &[
"udp://tracker.opentrackr.org:1337/announce",
"https://tracker.tamersunion.org:443/announce",
"udp://open.stealth.si:80/announce",
"udp://exodus.desync.com:6969/announce",
"udp://tracker.torrent.eu.org:451/announce",
"http://tracker.openbittorrent.com:80/announce",
"udp://tracker.moeking.me:6969/announce",
"udp://explodie.org:6969/announce",
"https://opentracker.i2p.rocks:443/announce",
"udp://tracker.tiny-vps.com:6969/announce",
"udp://open.demonii.com:1337/announce",
"udp://tracker.openbittorrent.com:6969/announce",
"https://tracker.nanoha.org:443/announce",
"http://tracker.gbitt.info:80/announce",
];
pub const REQUEST_PIPELINE: u32 = 256;
pub const DEFAULT_CACHE_BYTES: u64 = 64 * 1024 * 1024;
pub const MAX_METADATA_SIZE: u32 = 64 * 1024 * 1024;
}