✨ Features
🔒 Security & Protection
- Built-in DoS/DDoS protection - enabled by default, with no performance penalty.
- Fully configurable limits and timeouts for requests, responses, and connections.
- Custom connection filtering - implement the
ConnectionFiltertrait to reject unwanted connections at the TCP level.
⚡ Performance & Memory
- Zero-allocation - no memory allocations after server startup.
- Pre-allocated memory for each connection - linear and transparent scaling.
🌐 Protocol & Management
- Full HTTP stack -
HTTP/1.1,HTTP/1.0,HTTP/0.9+with keep-alive. - Automatic protocol detection for each request - keep-alive eliminates the need for manual protocol selection.
- Storing data between requests - ability to store data between requests in a
single connection using the [
ConnectionData] trait.
🏭 Production Ready
- Graceful performance degradation - automatic 503 responses when overloaded.
- Custom error format - structured JSON (with codes/descriptions) or a plain HTTP response.
- Resource protection - automatic closure of connections exceeding set limits.
🎯 Use Cases
- High-throughput microservices - configurable for specific workloads
- Resource-constrained environments - predictable memory usage
- Internal APIs - security-conscious defaults
- Performance-critical applications - zero-allocation design
- Legacy system integration - HTTP/1.0 compatibility
🌐 Not just code
Everything that remains outside the documentation—live statistics, deep details, and informal plans—I collect on a separate website. This is a space that I strive to keep current and meaningful.
🚀 Quick Start
1. Installation
Add maker_web and tokio to your Cargo.toml:
Or manually:
[]
= "0.1"
= { = "1", = ["full"] }
2. Usage example
use ;
use TcpListener;
;
async
📖 Examples
Check the examples directory for comprehensive usage examples.
📊 Benchmarks
Performance comparisons are available in the benchmarks directory.
📄 License
maker_web is licensed under either of the following, at your option: