A high-performance HTTP client performance testing tool.
It mimics real-world request handling while tracking throughput in real time. You can easily benchmark and stress-test systems handling heavy HTTP traffic.
This project follows semantic versioning.
- Handles HTTP requests and simulates real-world response delays.
- Tracks requests per second (RPS), min/max/avg response times, and uptime.
- Provides a TUI dashboard to visualize performance in real-time.
- Supports configurable delays (
0
,min-max
) to simulate latency. - JSON and plaintext output formats.
Sometimes you need to test your service that makes HTTP requests. rustrate is a tool to help you do that. It's like a microbenchmark for HTTP clients. Use it to test your service's performance under various conditions. How scalable your solution really is?
You'll need Rust (duh). Then:
cargo install --path .
or just run it directly:
cargo run -- --run
Run the server with:
rustrate -p 31337 -d 30-150 -f json --run
Options:
- -p, --port : Set the port (default: 31337).
- -d, --delay : Simulate delay (e.g., 50 or 30-150 for range).
- -f, --format : Output format (json, text).
- -r, --run: Start the server (otherwise, just prints help).
rustrate -p 31337 -d 30-150 -f json --run
curl -X POST curl -X POST http://localhost:31337
Load test it:
wrk -t8 -c100 -d90s http://localhost:31337
- Live stats: RPS, min/max/avg delay, total requests.
- Real-time graph of the last 60 seconds of throughput.
- Logs of recent requests.
- Press 'q' to quit or send SIGINT(Ctrl+C) to exit.
- Built with Axum for the HTTP server.
- Uses tokio for async processing.
- ratatui for the TUI dashboard.
- Request logs and stats are sent to a channel and rendered in real time.
MIT. Use it, break it, improve it.