A universal load testing framework for Rust with real-time terminal UI support for HTTP, gRPC, databases, and custom services.
rlt is a Rust load testing framework designed to be universal, enabling developers to create performance tests for various services including HTTP, gRPC, Thrift, databases, and custom protocols. It provides a flexible and high-performance foundation for benchmarking with minimal boilerplate code, featuring a real-time terminal user interface (TUI) for monitoring and baseline comparison for tracking performance changes.
Rust developers and performance engineers who need to benchmark and load test diverse services such as web APIs, gRPC services, databases, or custom network protocols, particularly those integrating performance testing into CI/CD pipelines.
Developers choose rlt for its universality across multiple protocols, its high-performance optimized design with low overhead, and its professional-grade tooling like real-time TUI monitoring and baseline comparison that simplifies detecting performance regressions.
A universal load testing framework for Rust, with real-time tui support.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables benchmarking across HTTP, gRPC, Thrift, databases, and custom protocols via trait implementations, as shown in the examples for diverse services.
Provides a terminal-based interface for live progress tracking with rich statistics, inspired by oha, enhancing development feedback loops.
Supports saving results as baselines and failing pipelines on regressions with configurable metrics, streamlining performance regression testing.
Built in Rust with low overhead, minimizing framework impact on benchmark accuracy, as emphasized in the design philosophy.
Reduces setup with macros like bench_cli! and clear trait patterns, allowing focus on test logic rather than framework details.
Requires Rust toolchain and compilation steps, adding setup time and complexity compared to interpreted or binary load testing tools.
Necessitates understanding Rust's async traits, macros, and Tokio runtime, which can be challenging for developers new to the language.
Lacks out-of-the-box support for specific protocols beyond basic examples, requiring custom implementation for advanced use cases.
As version 0.3, the API is subject to breaking changes, leading to potential maintenance overhead and migration efforts for users.