Expand description
IronTide session machinery (base layer; M244c).
Holds the supporting modules the session orchestrator (irontide-session’s
session.rs) builds on — registries, queue, resume, apply, persistence,
listeners, and the engine/support re-export shims — so the 12k-LOC
orchestrator compiles independently of this stable base.
Re-exports§
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 persistence::DhtNodeEntry;pub use persistence::PeerStrikeEntry;pub use persistence::SessionState;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 tag_manager::TagError;pub use tag_manager::TagRegistry;pub use tag_manager::resolve_tag_registry_path;
Modules§
- alert
- Session alert stream: categories, kinds, and the broadcast surface. Alert/event system for push-based notifications.
- apply
- Transactional
apply_settingsskeleton with phase-ordered rollback (M173 Lane B). Transactionalapply_settingsskeleton 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-protocol (BEP 10) plugin surface. Extension plugin interface for custom BEP 10 extensions.
- hash_
pool - Parallel SHA-1/SHA-256 piece-hashing pool. Dedicated thread pool for CPU-bound piece hash verification (M96).
- i2p
- I2P support via the SAM v3.1 bridge protocol.
- listener
- TCP/uTP listener polling, extracted from
SessionActor’s mainselect!loop. Isolated listener task for accepting and identifying inbound connections. - lsd
- Local Service Discovery (LSD / BEP-14) announce + receive. BEP 14 Local Peer Discovery (LSD).
- metadata_
resolver - Magnet metadata (BEP-9) resolution for off-actor adds. M147: Session-level metadata resolution for magnet links.
- notification
- M226: engine-side OS notification dispatcher
(completion + error toasts via
notify-rust/ zbus). M226: engine-side OS notification dispatcher. - persistence
- Session-state persistence: peer-strike / DHT-node / resume snapshot types.
- queue
- Torrent queue + auto-management (active/seeding caps, FIFO position). Queue position arithmetic for auto-managed torrents.
- 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).
- settings_
convert Settings→ runtime-config conversions, as a session-local extension trait (M242).Settings→ runtime-config conversions (M242).- stats
- Session statistics metric registry and atomic counter array.
- streaming
- Sequential / streaming file read surface.
File streaming —
AsyncRead+AsyncSeekover individual torrent files. - tag_
manager - qBt-compat tag registry (M171). qBt-compat tag registry (M171).
- transport
- Network transport abstraction layer.
- types
- Shared session payload + debug snapshot types.
Re-export shim for
crate::types::…. - url_
guard - SSRF-safe URL validation + redirect policy for user-supplied URLs. 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).
Structs§
- Alert
- A timestamped event from the session or a torrent.
- Alert
Category - Bitmask categories for filtering alerts.
- Alert
Stream - A filtered view of the alert broadcast channel.
- BanConfig
- Configuration for smart banning behaviour.
- Boxed
Stream - A type-erased bidirectional async stream.
- Debug
Dispatch State - Dispatch-level diagnostic counters (session-wide + per-torrent).
- Debug
Peer State - Per-peer debug state for diagnosing throughput issues.
- Debug
State - Top-level debug state snapshot for all torrents in the session.
- Debug
Torrent State - Per-torrent debug state including dispatch counters and peer details.
- Disabled
Disk Io - No-op disk I/O backend for network throughput benchmarking.
- Disk
Config - Configuration for the disk I/O subsystem.
- Disk
Handle - Per-torrent handle for async disk I/O.
- Disk
IoStats - Aggregate I/O statistics for a disk backend.
- Disk
JobFlags - Hint flags for disk I/O operations.
- Disk
Manager Handle - Session-level handle for managing the disk subsystem.
- Disk
Stats - Disk I/O performance counters.
- File
Info - Info about a file within a torrent.
- File
Status - Status of a single file within a torrent.
- File
Stream - Async reader/seeker over a single file within a torrent.
- Hash
Pool - A thread pool dedicated to CPU-bound piece hash verification.
- Hash
Result - Result of a hash verification.
- I2pDestination
- An I2P destination address (~516 bytes, Base64-encoded for display/storage).
- IpFilter
- IP address filter supporting both IPv4 and IPv6 ranges.
- Network
Factory - Factory for creating TCP listeners and outbound connections.
- 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 the per-torrent peer-pipeline counters.
- Port
Filter - Port range filter.
- Proxy
Config - Proxy connection settings.
- QbtCompat
Settings - qBittorrent
WebUIv2 compatibility layer configuration. - Session
Counters - Atomic counter array shared between session and torrent actors.
- Session
Stats - Aggregate statistics for the whole session.
- Session
Stats Metric - Static metadata for a single session metric.
- 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.
- WebSeed
Stats - Per-URL stats for a single web-seed source, surfaced to the qBt v2
/api/v2/torrents/webseedsendpoint and the GUI’s HTTP Sources tab.
Enums§
- Alert
Kind - The specific event that occurred.
- 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.
- HashJob
- Job submitted to the hash pool.
- I2pDestination
Error - Error type for I2P destination parsing.
- IpFilter
Error - Errors from parsing IP filter files.
- MaxRatio
Action - M171: Action taken when a torrent’s seed ratio reaches its configured limit.
- Metric
Kind - Whether a metric is a monotonically increasing counter or a point-in-time gauge.
- 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).
- QbtCredential
Migration - Outcome of a legacy-plaintext migration pass (M172a A3 / C2).
- QbtMigration
Error - Errors raised by
migrate_qbt_credentials. - Seed
Choking Algorithm - Choking algorithm used when we are seeding.
- Settings
Error - Validation failure produced by
Settings::validate. - Torrent
State - Current state of a torrent.
- Tracker
Status - Public tracker status (simplified view of internal
TrackerState). - WebSeed
State - Coarse state of a single web-seed source.
Constants§
- DEFAULT_
ADMINADMIN_ HASH - Argon2id PHC hash of the default “adminadmin” password (M172a A3).
- NUM_
METRICS - Total number of metrics tracked by the session.
Traits§
- Disk
IoBackend - Trait for pluggable disk I/O backends.
- Extension
Plugin - A custom BEP 10 extension message handler.
- Transport
Listener - An object-safe listener that accepts inbound connections.
Functions§
- build_
wanted_ pieces - Build a bitfield marking which pieces are wanted based on file priorities.
- hash_
qbt_ password - Hash
plaintextwith 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
.datformat blocklist. - parse_
p2p - Parse a P2P plaintext format blocklist.
- session_
stats_ metrics - Return static metadata for all session metrics.
- 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.