40 lines
1.6 KiB
Rust
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;
|