Files
aria2-rust-pro/crates/aria2-rust-pro-protocol/src/torrent.rs
T

40 lines
1.6 KiB
Rust

//! Torrent metadata, peer-wire framing, and DHT message helpers.
#![forbid(unsafe_code)]
/// Internal torrent bencode value parsing and encoding helpers.
mod bencode;
/// Distributed-hash-table message models and compact-node helpers.
mod dht;
/// Torrent metadata/bootstrap parsing and derivation helpers.
mod metadata;
/// Parsed torrent models and runtime-adjacent helper methods.
mod model;
/// `BitTorrent` peer-wire framing and metadata-exchange helpers.
mod peer_wire;
/// Shared torrent-local decoding and conversion helpers.
mod utils;
#[cfg(test)]
use self::dht::compact::{decode_compact_dht_nodes, encode_compact_dht_nodes};
pub use self::dht::{
DhtAnnouncePeerQueryModel, DhtCompactNodeModel, DhtErrorModel, DhtFindNodeQueryModel,
DhtFindNodeResponseModel, DhtGetPeersQueryModel, DhtGetPeersResponseModel, DhtMessageBody,
DhtMessageModel, DhtPingQueryModel, DhtPingResponseModel, DhtQueryModel, DhtResponseModel,
};
pub use self::metadata::{parse_torrent_bootstrap, parse_torrent_metadata};
pub use self::model::{
TorrentBootstrapModel, TorrentFileEntryModel, TorrentHashModel, TorrentInfoModel,
TorrentMetadataModel, TorrentPeerModel, TorrentPieceModel, TorrentTrackerModel,
};
pub use self::peer_wire::{
PEER_WIRE_METADATA_PIECE_SIZE, PeerWireBitfieldModel, PeerWireBlockRequestModel,
PeerWireExtensionHandshakeModel, PeerWireExtensionMessageModel, PeerWireFrameHeaderModel,
PeerWireHandshakeModel, PeerWireMessageKind, PeerWireMessageModel,
PeerWireMetadataMessageModel, PeerWireMetadataMessageType, PeerWirePieceBlockModel,
PeerWireUnknownMessageModel, TorrentMessageModel,
};
#[cfg(test)]
mod tests;