v0.8.0
What's Changed
Added
- wisegate-core crate: Extracted reusable library for embedding in other projects
- ConfigProvider trait: Dependency injection for configuration, enabling library reuse
- EnvVarConfig: Default implementation reading from environment variables
- WiseGateError: Custom error type with HTTP status mapping and user-friendly messages
- HTTP header constants: Centralized in
headers.rswithis_hop_by_hop()helper - ConnectionTracker: Track active connections for graceful shutdown
- ConnectionLimiter: Semaphore-based connection limiting with permit management
- Shared TestConfig: Centralized test configuration in
test_utils.rsmodule - Comprehensive unit tests: 220 tests covering all modules
Refactored
- Workspace structure: Split into
wisegate(CLI) andwisegate-core(library) - ip_filter: Accepts
ConfigProviderinstead of global config - rate_limiter: Accepts
ConfigProviderinstead of global config - request_handler: Accepts
ConfigProviderand HTTP client, uses centralizedheaders::is_hop_by_hop() - main.rs: Uses
ConnectionTrackerandConnectionLimiterfor cleaner connection management
Removed
- test-local.py: Removed redundant Python test script (replaced by Rust integration tests)
- Duplicated TestConfig: Consolidated into shared
test_utils.rsmodule - Duplicated is_hop_by_hop: Now uses centralized function from
headers.rs
Full Changelog: v0.7.2...v0.8.0