Skip to main content

Crate wisegate

Crate wisegate 

Source
Expand description

WiseGate - A wise guardian for your network gates

An efficient, secure reverse proxy with built-in rate limiting and IP filtering.

§Overview

WiseGate is a high-performance reverse proxy written in Rust that provides:

  • Rate limiting with sliding window algorithm
  • IP filtering and blocking
  • HTTP method and URL pattern filtering
  • Trusted proxy validation (RFC 7239 compliant)
  • Structured logging with JSON support

§Example

use wisegate::{config, RateLimiter};

// Get configuration from environment
let rate_config = config::get_rate_limit_config();
let proxy_config = config::get_proxy_config();

// Create a rate limiter
let limiter = RateLimiter::new();

§Modules

  • config - Configuration management from environment variables
  • env_vars - Environment variable constants
  • server - Server utilities and startup info
  • args - Command line argument parsing

§Re-exports from wisegate-core

Core functionality is provided by the wisegate-core crate:

Re-exports§

pub use config::EnvVarConfig;
pub use config::get_allowed_proxy_ips;
pub use config::get_blocked_ips;
pub use config::get_blocked_methods;
pub use config::get_blocked_patterns;
pub use config::get_max_connections;
pub use config::get_proxy_config;
pub use config::get_rate_limit_cleanup_config;
pub use config::get_rate_limit_config;

Modules§

args
Command line argument parsing for WiseGate.
config
Configuration management for WiseGate.
connection
Connection management utilities for WiseGate.
env_vars
Environment variable constants for WiseGate configuration.
ip_filter
IP filtering and validation for WiseGate.
rate_limiter
Rate limiting implementation for WiseGate.
request_handler
HTTP request handling and proxying.
server
Server startup and information display.
types
Type definitions for WiseGate configuration and state management.

Structs§

ProxyConfig
Configuration for proxy behavior and upstream communication.
RateLimitCleanupConfig
Configuration for automatic cleanup of expired rate limit entries.
RateLimitConfig
Configuration for rate limiting per IP address.
RateLimitEntry
Entry for tracking rate limit state per IP address.
RateLimiter
Thread-safe rate limiter state shared across all connections.

Traits§

ConfigProvider
Trait for complete configuration injection.
ConnectionProvider
Configuration for connection limits.
FilteringProvider
Configuration for request filtering.
ProxyProvider
Configuration for proxy behavior.
RateLimitingProvider
Configuration for rate limiting behavior.