nzb_nntp/lib.rs
1//! Async NNTP client with TLS, pipelining, connection pooling, and multi-server support.
2//!
3//! Modules:
4//! - `config` — Server and article configuration types
5//! - `error` — NNTP-specific error types
6//! - `connection` — Single NNTP connection state machine (TCP/TLS, auth, article fetch)
7//! - `pipeline` — Request pipelining (ARTICLE and STAT commands)
8//! - `pool` — Per-server async connection pool
9//! - `server` ��� Server health tracking, penalties, speed measurement
10//! - `downloader` — Download orchestrator (assigns articles to servers with failover)
11
12pub mod capabilities;
13pub mod config;
14pub mod connect_gate;
15pub mod connection;
16pub mod downloader;
17pub mod error;
18pub mod pipeline;
19pub mod pool;
20pub mod server;
21
22/// Test utilities: in-process mock NNTP server. Only available with the `test-support` feature.
23#[cfg(any(test, feature = "test-support"))]
24pub mod testutil;
25
26pub use capabilities::NntpCapabilities;
27pub use config::{Article, ListActiveEntry, ServerConfig};
28pub use connection::{
29 ArticleRange, ConnectionState, GroupResponse, HeaderEntry, NntpConnection, NntpResponse,
30 XoverEntry,
31};
32pub use downloader::{ArticleResult, Downloader};
33pub use error::{NntpError, NntpResult};
34pub use pipeline::{Pipeline, StatPipeline, StatResult};
35pub use pool::ConnectionPool;
36pub use server::ServerState;