Expand description
BitTorrent session management: peers, torrents, and piece selection.
Re-exports§
pub use alert::Alert;pub use alert::AlertCategory;pub use alert::AlertKind;pub use alert::AlertStream;pub use disk::DiskConfig;pub use disk::DiskHandle;pub use disk::DiskJobFlags;pub use disk::DiskManagerHandle;pub use disk::DiskStats;pub use disk_backend::DisabledDiskIo;pub use disk_backend::DiskIoBackend;pub use disk_backend::DiskIoStats;pub use extension::ExtensionPlugin;pub use hash_pool::HashJob;pub use hash_pool::HashPool;pub use hash_pool::HashResult;pub use i2p::I2pDestination;pub use i2p::I2pDestinationError;pub use resume_file::ResumeFileError;pub use resume_file::default_resume_dir;pub use stats::MetricKind;pub use stats::NUM_METRICS;pub use stats::SessionCounters;pub use stats::SessionStatsMetric;pub use stats::session_stats_metrics;pub use streaming::FileStream;pub use transport::BoxedStream;pub use transport::NetworkFactory;pub use transport::TransportListener;
Modules§
- alert
- Alert/event system for push-based notifications.
- disk
- Disk I/O manager: configuration, handles, and statistics.
- disk_
backend - Pluggable disk I/O backend trait and implementations. Pluggable disk I/O backend abstraction.
- extension
- Extension plugin interface for custom BEP 10 extensions.
- hash_
pool - Dedicated thread pool for CPU-bound piece hash verification (M96).
- i2p
- I2P support via the SAM v3.1 bridge protocol.
- resume_
file - Resume file persistence: serialize, deserialize, atomic write, and directory helpers. Resume file persistence: serialize, deserialize, atomic write, and directory helpers.
- stats
- Session statistics metric registry and atomic counter array.
- streaming
- File streaming — AsyncRead + AsyncSeek over individual torrent files.
- transport
- Network transport abstraction layer.
Structs§
- BanConfig
- Configuration for smart banning behaviour.
- DhtNode
Entry - A DHT bootstrap node entry for session persistence.
- File
Info - Info about a file within a torrent.
- File
Status - Status of a single file within a torrent.
- IpFilter
- IP address filter supporting both IPv4 and IPv6 ranges.
- Partial
Piece Info - In-flight piece download status for the download queue.
- Peer
Info - Per-peer details exported for client UI introspection.
- Peer
Pipeline Snapshot - Point-in-time snapshot of [
PeerPipelineStats]. - Peer
Strike Entry - A peer strike entry for session persistence.
- Port
Filter - Port range filter.
- Proxy
Config - Proxy connection settings.
- Resume
Load Result - Result of loading resume state from disk (M161 Phase 4).
- Session
Handle - Cloneable handle for interacting with a running session.
- Session
State - Persisted session state containing a DHT node cache and torrent resume data.
- Session
Stats - Aggregate statistics for the whole session.
- Settings
- Unified session settings (replaces
SessionConfig). - Torrent
Config - Configurable parameters for a torrent session.
- Torrent
Flags - Bitflag convenience wrapper for common torrent state flags.
- Torrent
Handle - Cloneable handle for interacting with a running torrent.
- Torrent
Info - Metadata about a torrent (available after metadata is fetched).
- Torrent
Stats - Aggregate statistics for a torrent.
- Torrent
Summary - Lightweight summary of a torrent for the HTTP API.
- Tracker
Info - Public info about a single tracker.
Enums§
- Choking
Algorithm - Top-level choking algorithm variant.
- Error
- Errors that can occur during session operations.
- File
Mode - Whether a file in a torrent is open and its I/O access mode.
- IpFilter
Error - Errors from parsing IP filter files.
- Mixed
Mode Algorithm - Mixed-mode bandwidth allocation algorithm for TCP/uTP coexistence.
- Peer
Source - Origin of a peer address.
- Proxy
Type - Supported proxy protocols (matching libtorrent).
- Seed
Choking Algorithm - Choking algorithm used when we are seeding.
- Torrent
State - Current state of a torrent.
- Tracker
Status - Public tracker status (simplified view of internal TrackerState).
Functions§
- build_
wanted_ pieces - Build a bitfield marking which pieces are wanted based on file priorities.
- parse_
dat - Parse an eMule
.datformat blocklist. - parse_
p2p - Parse a P2P plaintext format blocklist.
- validate_
resume_ bitfield - Returns
trueif thepiecesbitfield has the correct length fornum_piecespieces (i.e.ceil(num_pieces / 8)bytes).
Type Aliases§
- Result
- Convenience alias for
Result<T, Error>. - Storage
Factory - Type alias for a factory that creates per-torrent storage.