irontide-engine-support 1.0.2

Engine support primitives for irontide: crate-wide error/Result, I2P SAM client, transport abstraction, rate limiting, slot tuning, and the stats accumulator — the pure leaves shared by the engine runtime and session-core
Documentation
//! Engine support primitives for irontide.
//!
//! This is the thin leaf crate that sits **below** both the engine runtime
//! (`irontide-engine`) and `irontide-session`. It owns the pure, low-coupling
//! mechanisms that both layers consume downward:
//!
//! - [`error`] — the crate-wide [`Error`]/[`Result`] type (`#[from]`-wraps the
//!   lower-crate errors plus [`i2p::SamError`]).
//! - [`i2p`] — the I2P SAM-bridge client (co-located with `error` because
//!   `Error` `#[from]`-wraps `i2p::SamError`).
//! - [`transport`] — the network transport abstraction (`BoxedStream`,
//!   `NetworkFactory`, `TransportListener`).
//! - [`rate_limiter`] — the mixed-mode (GCRA) rate limiter.
//! - [`slot_tuner`] — adaptive unchoke-slot tuning.
//! - [`stats`] — the engine stats accumulator.
//!
//! Extracted from `irontide-session` at M244b (the engine/session split). The
//! grounding verified these six modules are pure leaves — the only intra-crate
//! edge is `error -> i2p` (`Error #[from] i2p::SamError`), which is why the two
//! co-locate here. Every other module has zero `crate::` coupling.

pub mod error;
pub mod i2p;
pub mod rate_limiter;
pub mod slot_tuner;
pub mod stats;
pub mod transport;

pub use error::{Error, Result};