|
1 | 1 | # RustAPI Release History |
2 | 2 |
|
3 | | -<<<<<<< Updated upstream |
4 | | -## v0.1.300 - Time-Travel Debugging (2026-02-06) |
5 | | - |
6 | | -### 🎯 Major Feature: Replay System |
7 | | - |
8 | | -Introducing **Replay** - a comprehensive time-travel debugging system that records HTTP request/response pairs and allows you to replay them against different environments for debugging and regression testing. |
9 | | - |
10 | | -#### Core Capabilities |
11 | | - |
12 | | -- **Automatic Recording**: `ReplayLayer` middleware captures all HTTP traffic |
13 | | -- **Flexible Storage**: In-memory (dev) and filesystem (production) stores |
14 | | -- **Smart Diffing**: JSON-aware diff algorithm that highlights actual changes |
15 | | -- **Security First**: Disabled by default, admin token auth, automatic sensitive data redaction |
16 | | -- **CLI Tooling**: Full `cargo rustapi replay` command suite |
17 | | -- **Retention Management**: Automatic cleanup with configurable TTL |
18 | | - |
19 | | -#### Architecture |
20 | | - |
21 | | -``` |
22 | | -rustapi-core → Pure types & traits (no IO) |
23 | | -rustapi-extras → Middleware, stores, HTTP routes |
24 | | -cargo-rustapi → CLI commands |
25 | | -``` |
26 | | - |
27 | | -#### Quick Example |
28 | | - |
29 | | -```rust |
30 | | -use rustapi_rs::prelude::*; |
31 | | -use rustapi_rs::replay::{ReplayLayer, InMemoryReplayStore}; |
32 | | -use rustapi_core::replay::ReplayConfig; |
33 | | - |
34 | | -let replay = ReplayLayer::new( |
35 | | - ReplayConfig::new() |
36 | | - .enabled(true) |
37 | | - .admin_token("secret") |
38 | | - .ttl_secs(3600) |
39 | | -); |
40 | | - |
41 | | -RustApi::new() |
42 | | - .layer(replay) |
43 | | - .route("/api/users", get(list_users)) |
44 | | - .run("127.0.0.1:8080") |
45 | | - .await |
46 | | -``` |
47 | | - |
48 | | -#### Admin API Endpoints |
49 | | - |
50 | | -- `GET /__rustapi/replays` - List entries |
51 | | -- `GET /__rustapi/replays/{id}` - Show details |
52 | | -- `POST /__rustapi/replays/{id}/run?target=URL` - Replay request |
53 | | -- `POST /__rustapi/replays/{id}/diff?target=URL` - Compare responses |
54 | | -- `DELETE /__rustapi/replays/{id}` - Delete entry |
55 | | - |
56 | | -#### CLI Commands |
57 | | - |
58 | | -**Installation** (requires `replay` feature): |
59 | | -```bash |
60 | | -cargo install cargo-rustapi --features replay |
61 | | -``` |
62 | | - |
63 | | -**Usage**: |
64 | | -```bash |
65 | | -cargo rustapi replay list |
66 | | -cargo rustapi replay show <id> |
67 | | -cargo rustapi replay run <id> --target http://staging:8080 |
68 | | -cargo rustapi replay diff <id> --target http://staging:8080 |
69 | | -cargo rustapi replay delete <id> |
70 | | -``` |
71 | | - |
72 | | -### 📦 What's Changed |
73 | | - |
74 | | -- **28 files changed**: 4,113 insertions across rustapi-core, rustapi-extras, and cargo-rustapi |
75 | | -- Comprehensive cookbook recipe with security guidelines |
76 | | -- Full test coverage for all replay components |
77 | | - |
78 | | -### 🔧 Improvements |
79 | | - |
80 | | -- Fixed broken intra-doc link in replay module documentation |
81 | | -- Removed unused `check_diff.py` script |
82 | | - |
83 | | -### 🎓 Learn More |
84 | | - |
85 | | -- [Cookbook: Replay Recipe](docs/cookbook/src/recipes/replay.md) |
86 | | -- [PR #98: Time-Travel Debugging](https://github.com/Tuntii/RustAPI/pull/98) |
87 | | - |
88 | | ---- |
89 | | - |
90 | | -## v0.1.202 - Performance Revolution (2026-01-26) |
91 | | - |
92 | | -### 🚀 Performance Improvements |
93 | | - |
94 | | -This release delivers a **12x performance improvement**, bringing RustAPI from ~8K req/s to **~92K req/s** - now within striking distance of Actix-web. |
95 | | - |
96 | | -#### Benchmark Results |
97 | | - |
98 | | -| Framework | Requests/sec | Latency (avg) | |
99 | | -|-----------|-------------|---------------| |
100 | | -| **RustAPI** | ~92,000 | ~1.1ms | |
101 | | -| Actix-web 4 | ~105,000 | ~0.95ms | |
102 | | -| Axum | ~100,000 | ~1.0ms | |
103 | | - |
104 | | -*Tested with `hey -n 100000 -c 100` on Windows 11, Ryzen 9 5900X* |
105 | | - |
106 | | -### ✨ Server Optimizations |
107 | | - |
108 | | -- **TCP_NODELAY**: Disabled Nagle's algorithm for lower latency |
109 | | -- **Pipeline Flush**: Enabled HTTP/1.1 pipeline flushing for better throughput |
110 | | -- **ConnectionService**: Reduced Arc cloning overhead per connection |
111 | | -- **HandleRequestFuture**: Custom future implementation for request handling |
112 | | -- **Ultra-Fast Path**: New routing path that bypasses both middleware AND interceptors for maximum performance |
113 | | - |
114 | | -### 📦 JSON Optimizations |
115 | | - |
116 | | -- **simd-json Serialization**: Extended simd-json support from parsing-only to full serialization |
117 | | -- Added `to_vec` and `to_vec_with_capacity` using simd-json when feature is enabled |
118 | | - |
119 | | -### 🔧 Build Profile Optimizations |
120 | | - |
121 | | -```toml |
122 | | -[profile.release] |
123 | | -lto = "fat" |
124 | | -codegen-units = 1 |
125 | | -opt-level = 3 |
126 | | -panic = "abort" |
127 | | -strip = true |
128 | | -``` |
129 | | - |
130 | | -### 📚 Documentation |
131 | | - |
132 | | -- Updated README.md with accurate benchmark numbers |
133 | | -- Removed inflated performance claims |
134 | | -- Added TechEmpower-based comparison data |
135 | | - |
136 | | -### 🧹 Cleanup |
137 | | - |
138 | | -- Removed unused static variables from bench_server |
139 | | -- Code formatted with `cargo fmt --all` |
140 | | - |
141 | | ---- |
142 | | - |
143 | | -## v0.1.201 - Previous Release |
144 | | - |
145 | | -*See CHANGELOG.md for historical releases* |
146 | | - |
147 | | ---- |
148 | | - |
149 | | -## Performance Roadmap |
150 | | - |
151 | | -For planned optimizations to reach and exceed Actix performance, see [BEAT_ACTIX_ROADMAP.md](memories/BEAT_ACTIX_ROADMAP.md). |
152 | | - |
153 | | -**Target: 105-115K req/s** through: |
154 | | -- Stack-allocated futures (remove Box::pin) |
155 | | -- Zero-copy path handling |
156 | | -- Pre-compiled middleware stack |
157 | | -- Response header pooling |
158 | | -======= |
159 | 3 | ## v0.1.333 - Quick Wins + Must-Have Completion (2026-02-08) |
160 | 4 |
|
161 | 5 | This release combines dependency surface cleanup, runtime completions, and documentation alignment in one focused quick-wins iteration. |
@@ -202,4 +46,3 @@ This release combines dependency surface cleanup, runtime completions, and docum |
202 | 46 |
|
203 | 47 | - Broad performance optimizations in server and JSON layers |
204 | 48 | - Benchmark improvements and release profile tuning |
205 | | ->>>>>>> Stashed changes |
0 commit comments