|
| 1 | +# RustAPI Release History |
| 2 | + |
| 3 | +## v0.1.202 - Performance Revolution (2026-01-26) |
| 4 | + |
| 5 | +### 🚀 Performance Improvements |
| 6 | + |
| 7 | +This release delivers a **12x performance improvement**, bringing RustAPI from ~8K req/s to **~92K req/s** - now within striking distance of Actix-web. |
| 8 | + |
| 9 | +#### Benchmark Results |
| 10 | + |
| 11 | +| Framework | Requests/sec | Latency (avg) | |
| 12 | +|-----------|-------------|---------------| |
| 13 | +| **RustAPI** | ~92,000 | ~1.1ms | |
| 14 | +| Actix-web 4 | ~105,000 | ~0.95ms | |
| 15 | +| Axum | ~100,000 | ~1.0ms | |
| 16 | + |
| 17 | +*Tested with `hey -n 100000 -c 100` on Windows 11, Ryzen 9 5900X* |
| 18 | + |
| 19 | +### ✨ Server Optimizations |
| 20 | + |
| 21 | +- **TCP_NODELAY**: Disabled Nagle's algorithm for lower latency |
| 22 | +- **Pipeline Flush**: Enabled HTTP/1.1 pipeline flushing for better throughput |
| 23 | +- **ConnectionService**: Reduced Arc cloning overhead per connection |
| 24 | +- **HandleRequestFuture**: Custom future implementation for request handling |
| 25 | +- **Ultra-Fast Path**: New routing path that bypasses both middleware AND interceptors for maximum performance |
| 26 | + |
| 27 | +### 📦 JSON Optimizations |
| 28 | + |
| 29 | +- **simd-json Serialization**: Extended simd-json support from parsing-only to full serialization |
| 30 | +- Added `to_vec` and `to_vec_with_capacity` using simd-json when feature is enabled |
| 31 | + |
| 32 | +### 🔧 Build Profile Optimizations |
| 33 | + |
| 34 | +```toml |
| 35 | +[profile.release] |
| 36 | +lto = "fat" |
| 37 | +codegen-units = 1 |
| 38 | +opt-level = 3 |
| 39 | +panic = "abort" |
| 40 | +strip = true |
| 41 | +``` |
| 42 | + |
| 43 | +### 📚 Documentation |
| 44 | + |
| 45 | +- Updated README.md with accurate benchmark numbers |
| 46 | +- Removed inflated performance claims |
| 47 | +- Added TechEmpower-based comparison data |
| 48 | + |
| 49 | +### 🧹 Cleanup |
| 50 | + |
| 51 | +- Removed unused static variables from bench_server |
| 52 | +- Code formatted with `cargo fmt --all` |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## v0.1.201 - Previous Release |
| 57 | + |
| 58 | +*See CHANGELOG.md for historical releases* |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## Performance Roadmap |
| 63 | + |
| 64 | +For planned optimizations to reach and exceed Actix performance, see [BEAT_ACTIX_ROADMAP.md](memories/BEAT_ACTIX_ROADMAP.md). |
| 65 | + |
| 66 | +**Target: 105-115K req/s** through: |
| 67 | +- Stack-allocated futures (remove Box::pin) |
| 68 | +- Zero-copy path handling |
| 69 | +- Pre-compiled middleware stack |
| 70 | +- Response header pooling |
0 commit comments