Change Log Guide
Change Log Guide for Ignitia
📋 Table of Contents
Changelog🔗
All notable changes to the Ignitia web framework will be documented in this file.
[Unreleased]🔗
Planned🔗
- OpenAPI/Swagger documentation generation
- Built-in metrics and observability
- Rate limiting per-route configuration
- Request validation middleware
- Database connection pooling utilities
- Session management middleware
[0.2.1] - 2024-09-20🔗
Added🔗
- Radix Tree Router: New high-performance routing engine with O(log n) lookup time
router/radix.rs
: Compressed trie implementation for ultra-fast route matchingRouterMode
enum: Choose between Radix (default) and Base routing modes- Up to 3x performance improvement over regex-based routing
- Memory-efficient shared prefix storage
- Advanced Server Performance: New performance optimization modules
server/performance.rs
: Socket-level optimizations and benchmarking toolsserver/pool.rs
: Connection pooling and resource managementPerformanceConfig::max_rps()
: Configuration for 65K+ RPS throughput- Zero-copy optimizations and CPU affinity settings
- Enhanced Request Processing: Improved request handling capabilities
- Better parameter extraction with type safety
- Optimized body parsing for large payloads
- Streaming request support for file uploads
- Response Optimization: Advanced response generation features
- Improved compression algorithms and content negotiation
- Better caching header management
- Streaming response support for large datasets
Enhanced🔗
- Router Module (
router/mod.rs
): Complete refactoring for better performance- Radix tree integration as default routing engine
- Backward compatibility with existing route definitions
- Improved error handling and debugging information
- Server Module (
server/mod.rs
): Major performance and stability improvements- Enhanced connection management with pooling
- Better protocol detection and negotiation
- Improved error handling and graceful shutdown
- Request Module (
request/
): Enhanced request processing capabilities- Better multipart form handling
- Improved parameter extraction performance
- Enhanced security validation
- Response Module (
response/
): Advanced response building and optimization- Better content type detection
- Improved compression handling
- Enhanced security headers management
Performance🔗
- Route Matching: 3x faster route resolution with Radix tree implementation
- Memory Usage: 50% reduction in memory footprint for typical applications
- Request Throughput: Optimized for 65,000+ requests per second
- Connection Handling: Improved connection pooling reduces resource overhead
Fixed🔗
- Route parameter extraction edge cases with special characters
- Memory leaks in connection pooling under high load
- HTTP/2 flow control issues with large payloads
- WebSocket connection cleanup race conditions
- CORS handling with complex preflight scenarios
Changed🔗
- Router: Default routing mode changed to Radix for better performance
- Server: Enhanced performance configuration options
- Request/Response: Improved API consistency and error handling
- Internal optimizations for better async performance
[0.2.0] - 2024-09-14🔗
Added🔗
- WebSocket Support: Complete WebSocket implementation with connection management, message handling, and batch processing
- Advanced Middleware Stack:
CompressionMiddleware
: Gzip and Brotli compression with configurable levelsRateLimitingMiddleware
: Token bucket algorithm with per-IP and custom key extractionSecurityMiddleware
: HSTS, CSP, and security headersRequestIdMiddleware
: Request tracking with UUID and NanoID support
- File Upload Support: Multipart form data handling with streaming and temp file management
- Enhanced Error Handling: Custom error types, structured error responses, and middleware-based error handling
- Server Configuration: HTTP/2 configuration, TLS support, and protocol detection
- Request Extractors:
State<T>
,Extension<T>
,Form<T>
extractors for better ergonomics - Cookie Management: Full cookie jar implementation with SameSite support
Enhanced🔗
- Router Performance: Compiled router with path optimization and faster matching
- HTTP/2 Support: Full HTTP/2 implementation with ALPN negotiation
- TLS Integration: rustls-based TLS with self-signed certificate generation
- Memory Management: Optimized request/response handling with reduced allocations
- Concurrent Handling: Improved async processing with better error propagation
Fixed🔗
- WebSocket upgrade handling race conditions
- Path parameter extraction with special characters
- Memory leaks in long-running connections
- HTTP/2 stream multiplexing issues
- CORS preflight request handling
Changed🔗
- Breaking: Middleware trait now uses separate
before
andafter
methods - Breaking: Error handling moved to dedicated error types and responses
- Router API now uses builder pattern consistently
- Response building simplified with
ResponseBuilder
[0.1.2] - 2024-08-15🔗
Added🔗
- Basic middleware support with
LoggerMiddleware
- Path parameter extraction with
:param
syntax - Query parameter parsing and extraction
- JSON request/response handling
- Basic error handling and custom error types
Fixed🔗
- Route matching precedence issues
- JSON deserialization error messages
- HTTP method parsing edge cases
[0.1.1] - 2024-08-05🔗
Added🔗
- Wildcard route matching with
*param
syntax - Nested router support for modular applications
- Extensions system for request-scoped data
- Basic HTTP status code utilities
Fixed🔗
- Route compilation performance issues
- Memory usage in request parsing
- Header handling for non-ASCII values
[0.1.0] - 2024-08-01🔗
Added🔗
- Initial release of Ignitia web framework
- Core HTTP server based on Hyper
- Basic routing system with method-specific handlers
- Request and Response abstractions
- Async/await support throughout
- Builder pattern for server and router configuration
- Development-focused error messages and debugging
- MIT license and initial documentation
Features🔗
- HTTP/1.1 support with keep-alive
- Route handlers with automatic extraction
- Minimalist API inspired by modern web frameworks
- Zero-config development server
- Fast compilation times
- Memory-safe request handling
Version Numbering🔗
Ignitia follows Semantic Versioning:
- MAJOR version for incompatible API changes
- MINOR version for backwards-compatible functionality additions
- PATCH version for backwards-compatible bug fixes
Migration Guides🔗
For breaking changes and migration instructions between major versions, see our Migration Guide.
Contributing🔗
We welcome contributions! See CONTRIBUTING.md for development setup and contribution guidelines.
Security🔗
Security vulnerabilities should be reported privately. See our Security Policy for details.