typhoon/flow/mod.rs
1//! Flow managers: UDP send/receive paths, fake-header/body framing, and decoy injection.
2//!
3//! A flow manager owns one or more UDP sockets and one [`decoy::DecoyProvider`] per active user.
4//! Providers are constructed lazily through a [`decoy::DecoyFactory`] closure so each flow or user
5//! can use a different concrete strategy at runtime.
6//!
7//! [`FlowConfig`] controls the fake-body mode and fake-header field layout for a flow.
8
9#[cfg(feature = "client")]
10pub mod client;
11mod common;
12pub mod config;
13pub mod decoy;
14mod error;
15pub mod probe;
16#[cfg(feature = "server")]
17pub mod server;
18
19#[cfg(feature = "client")]
20pub(crate) use common::FlowManager;
21pub use config::{FakeBodyMode, FakeHeaderConfig, FieldType, FieldTypeHolder, FlowConfig};
22pub use error::FlowControllerError;
23pub use probe::{ActiveProbeHandler, ProbeFactory, ProbeFlowSender, probe_factory};