#![doc = include_str!("../README.md")]

#[macro_use]
extern crate log;

/// Address list management for routing decisions (domains and IPs).
pub mod address_list;
/// Dialers and transport-specific outbound connection builders.
pub mod dial;
/// Masquerade response handling for non-proxy traffic.
pub mod masquerade;
/// Protocol parsers and serializers used by the proxy core.
pub mod proto;
/// HTTP and SOCKS proxy connection handling.
pub mod proxy;

pub use address_list::{DirectList, ProxyList};
#[cfg(feature = "stats")]
/// Optional statistics HTTP server.
pub mod stats_server;
/// Shared in-memory traffic and connection store.
pub mod store;
/// Stream wrappers and transport adapters.
pub mod stream;
/// TLS utilities used by the transport implementations.
pub mod tls;
/// Trojan protocol server-side connection handling.
pub mod trojan;

/// Re-export of the SOCKS/Trojan address type used across the crate.
pub use socks5_proto::Address;

pub(crate) const CRLF: [u8; 2] = [0x0d, 0x0a];
