Skip to main content

wisegate/
lib.rs

1//! WiseGate - A wise guardian for your network gates
2//!
3//! An efficient, secure reverse proxy with built-in rate limiting and IP filtering.
4//!
5//! # Overview
6//!
7//! WiseGate is a high-performance reverse proxy written in Rust that provides:
8//! - Rate limiting with sliding window algorithm
9//! - IP filtering and blocking
10//! - HTTP method and URL pattern filtering
11//! - Trusted proxy validation (RFC 7239 compliant)
12//! - Structured logging with JSON support
13//!
14//! # Example
15//!
16//! ```rust,no_run
17//! use wisegate::{config, types::RateLimiter};
18//!
19//! // Get configuration from environment
20//! let rate_config = config::get_rate_limit_config();
21//! let proxy_config = config::get_proxy_config();
22//!
23//! // Create a rate limiter
24//! let limiter = RateLimiter::new();
25//! ```
26//!
27//! # Modules
28//!
29//! - [`config`] - Configuration management from environment variables
30//! - [`types`] - Common types and type aliases
31//! - [`ip_filter`] - IP validation, extraction, and filtering
32//! - [`rate_limiter`] - Rate limiting implementation
33//! - [`request_handler`] - HTTP request processing and forwarding
34//! - [`env_vars`] - Environment variable constants
35//! - [`server`] - Server utilities and startup info
36//! - [`args`] - Command line argument parsing
37
38#![forbid(unsafe_code)]
39
40pub mod args;
41pub mod config;
42pub mod env_vars;
43pub mod ip_filter;
44pub mod rate_limiter;
45pub mod request_handler;
46pub mod server;
47pub mod types;
48
49// Re-export commonly used items at crate root
50pub use config::{
51    EnvVarConfig, get_allowed_proxy_ips, get_blocked_ips, get_blocked_methods,
52    get_blocked_patterns, get_max_connections, get_proxy_config, get_rate_limit_cleanup_config,
53    get_rate_limit_config,
54};
55pub use types::{
56    ConfigProvider, ProxyConfig, RateLimitCleanupConfig, RateLimitConfig, RateLimitEntry,
57    RateLimiter,
58};