Skip to main content

Crate irontide_session

Crate irontide_session 

Source
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 apply::ApplyError;
pub use apply::Phase;
pub use apply::ReconfigGuard;
pub use apply::ReconfigInFlight;
pub use apply::apply_phases_with_rollback;
pub use category_manager::CategoryError;
pub use category_manager::CategoryMetadata;
pub use category_manager::CategoryRegistry;
pub use category_manager::resolve_category_registry_path;
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 save_path::ExpandSavePathError;
pub use save_path::SimpleContentType;
pub use save_path::TorrentSavePathContext;
pub use save_path::expand_save_path_for_category;
pub use save_path::expand_save_path_template;
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 tag_manager::TagError;
pub use tag_manager::TagRegistry;
pub use tag_manager::resolve_tag_registry_path;
pub use transport::BoxedStream;
pub use transport::NetworkFactory;
pub use transport::TransportListener;

Modules§

alert
Alert/event system for push-based notifications.
apply
Transactional apply_settings skeleton with phase-ordered rollback (M173 Lane B). Transactional apply_settings skeleton with phase-ordered rollback (M173 Lane B, B1).
category_manager
qBt-compat category registry (M170). qBt-compat category registry (M170).
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.
notification
M226: engine-side OS notification dispatcher (completion + error toasts via notify-rust / zbus). M226: engine-side OS notification dispatcher.
resume_file
Resume file persistence: serialize, deserialize, atomic write, and directory helpers. Resume file persistence: serialize, deserialize, atomic write, and directory helpers.
save_path
Save-path token expansion (M173 Lane A — Decision 5). Save-path token expansion (M173 Lane A — Decision 5).
stats
Session statistics metric registry and atomic counter array.
streaming
File streaming — AsyncRead + AsyncSeek over individual torrent files.
tag_manager
qBt-compat tag registry (M171). qBt-compat tag registry (M171).
transport
Network transport abstraction layer.
url_guard
URL security validation — SSRF mitigation, IDNA rejection, HTTPS enforcement.
verify_before_download
Verify-Before-Download: fast file-size pre-scan (M205). Verify-Before-Download: fast file-size pre-scan (M205).
watched_folder
M226: engine-side watched-folder auto-add dispatcher (notify-debouncer-full → add_torrent). M226 Step 6: engine-side watched-folder subsystem.

Structs§

AddTorrentParams
Unified parameters for SessionHandle::add_torrent (M170).
AppliedSettings
Classification of settings-patch fields into “took effect immediately” versus “requires session restart to apply”.
BanConfig
Configuration for smart banning behaviour.
DebugDispatchState
Dispatch-level diagnostic counters (session-wide + per-torrent).
DebugPeerState
Per-peer debug state for diagnosing throughput issues.
DebugState
Top-level debug state snapshot for all torrents in the session.
DebugTorrentState
Per-torrent debug state including dispatch counters and peer details.
DhtNodeEntry
A DHT bootstrap node entry for session persistence.
FileInfo
Info about a file within a torrent.
FileStatus
Status of a single file within a torrent.
IpFilter
IP address filter supporting both IPv4 and IPv6 ranges.
PartialPieceInfo
In-flight piece download status for the download queue.
PeerInfo
Per-peer details exported for client UI introspection.
PeerPipelineSnapshot
Point-in-time snapshot of [PeerPipelineStats].
PeerStrikeEntry
A peer strike entry for session persistence.
PortFilter
Port range filter.
ProxyConfig
Proxy connection settings.
QbtCompatSettings
qBittorrent WebUI v2 compatibility layer configuration.
ResumeLoadResult
Result of loading resume state from disk (M161 Phase 4).
SessionHandle
Cloneable handle for interacting with a running session.
SessionState
Persisted session state containing a DHT node cache and torrent resume data.
SessionStats
Aggregate statistics for the whole session.
Settings
Unified session settings (replaces SessionConfig).
TorrentConfig
Configurable parameters for a torrent session.
TorrentFlags
Bitflag convenience wrapper for common torrent state flags.
TorrentHandle
Cloneable handle for interacting with a running torrent.
TorrentInfo
Metadata about a torrent (available after metadata is fetched).
TorrentStats
Aggregate statistics for a torrent.
TorrentSummary
Lightweight summary of a torrent for the HTTP API.
TrackerInfo
Public info about a single tracker.
WebSeedStats
Per-URL stats for a single web-seed source, surfaced to the qBt v2 /api/v2/torrents/webseeds endpoint and the GUI’s HTTP Sources tab.

Enums§

AddSource
Source for a torrent add (M170).
ChokingAlgorithm
Top-level choking algorithm variant.
Error
Errors that can occur during session operations.
FileMode
Whether a file in a torrent is open and its I/O access mode.
IpFilterError
Errors from parsing IP filter files.
MaxRatioAction
M171: Action taken when a torrent’s seed ratio reaches its configured limit.
MixedModeAlgorithm
Mixed-mode bandwidth allocation algorithm for TCP/uTP coexistence.
PeerSource
Origin of a peer address.
ProxyType
Supported proxy protocols (matching libtorrent).
QbtCredentialMigration
Outcome of a legacy-plaintext migration pass (M172a A3 / C2).
QbtMigrationError
Errors raised by migrate_qbt_credentials.
SeedChokingAlgorithm
Choking algorithm used when we are seeding.
TorrentState
Current state of a torrent.
TrackerStatus
Public tracker status (simplified view of internal TrackerState).
WebSeedState
Coarse state of a single web-seed source.

Constants§

DEFAULT_ADMINADMIN_HASH
Argon2id PHC hash of the default “adminadmin” password (M172a A3).

Functions§

build_wanted_pieces
Build a bitfield marking which pieces are wanted based on file priorities.
hash_qbt_password
Hash plaintext with OWASP-recommended argon2id parameters and return the PHC-format encoded string (M172a).
migrate_qbt_credentials
One-shot legacy-plaintext → argon2id migration for QbtCompatSettings.
parse_dat
Parse an eMule .dat format blocklist.
parse_p2p
Parse a P2P plaintext format blocklist.
validate_resume_bitfield
Returns true if the pieces bitfield has the correct length for num_pieces pieces (i.e. ceil(num_pieces / 8) bytes).

Type Aliases§

Result
Convenience alias for Result<T, Error>.
StorageFactory
Type alias for a factory that creates per-torrent storage.