stochastic-routing-extended 1.0.2

SRX (Stochastic Routing eXtended) — a next-generation VPN protocol with stochastic routing, DPI evasion, post-quantum cryptography, and multi-transport channel splitting
Documentation
//! # SRX — Stochastic Routing eXtended
//!
//! A next-generation VPN protocol is designed around three pillars:
//!
//! 1. **Stealth** — DPI evasion through protocol mimicry, jitter modeling,
//!    cover traffic, and elimination of static signatures.
//!
//! 2. **Resilience** — Multi-transport channel splitting with stochastic
//!    routing, automatic fallback, and self-healing under interference.
//!
//! 3. **Cryptographic strength** — Hybrid post-quantum (Kyber) + ECDH
//!    key exchange, AEAD encryption, deterministic seed-based coordination,
//!    and pseudo-random re-keying.
//!
//! ## Architecture overview
//!
//! ```text
//! ┌─────────────────────────────────────────────────┐
//! │                  Application                     │
//! ├─────────────────────────────────────────────────┤
//! │  Session (handshake, re-key, seed sync)          │
//! ├─────────────────────────────────────────────────┤
//! │  Frame (encode/decode, fragment/reassemble)      │
//! ├──────────┬──────────────────────────────────────┤
//! │ Routing  │  Masking (mimicry, jitter, cover)     │
//! ├──────────┴──────────────────────────────────────┤
//! │  Channel (multiplex, fallback, health)           │
//! ├─────────────────────────────────────────────────┤
//! │  Transport (TCP, UDP, QUIC, WS, gRPC, HTTP)     │
//! ├─────────────────────────────────────────────────┤
//! │  Crypto (PQC-KEM, ECDH, AEAD, KDF)              │
//! └─────────────────────────────────────────────────┘
//! ```

pub mod channel;
pub mod client;
pub mod config;
pub mod crypto;
pub mod error;
pub mod frame;
pub mod high_api;
pub mod masking;
pub mod metrics;
pub mod node;
pub mod pipeline;
pub mod replay_storage;
pub mod routing;
pub mod seed;
pub mod server;
pub mod session;
pub mod signaling;
pub mod transport;

// Re-export key types at crate root for convenience.
pub use config::SrxConfig;
pub use crypto::AeadPipeline;
pub use error::{Result, SrxError};
pub use frame::{read_length_prefixed, write_length_prefixed};
pub use high_api::SecureTcpSession;
pub use node::SrxNode;
pub use pipeline::{Payload, SrxPipeline};
pub use replay_storage::{
    CustomHmacKeyProvider, ReplayStoreMetricsSnapshot, register_custom_hmac_key_provider,
};
pub use session::Session;
pub use signaling::inband::Signal;
pub use transport::{
    ReconnectConfig, ReconnectingTransport, TcpTransport, TimeoutTransport, TlsTcpTransport,
    TransportManager, UdpTransport,
};

#[cfg(feature = "http-tunnel")]
pub use transport::HttpTunnelTransport;
#[cfg(feature = "websocket")]
pub use transport::WebSocketTransport;
#[cfg(feature = "grpc")]
pub use transport::{GrpcTransport, TunnelEcho, serve_tunnel_echo, serve_tunnel_echo_tls};
#[cfg(feature = "quic")]
pub use transport::{QuicStreamChannel, QuicTransport};