https://github.com/shellshape/rush
A tiny HTTP benchmarking and performance testing CLI tool.
https://github.com/shellshape/rush
benchmark cli http http-benchmarking performance-analysis requests rust
Last synced: 11 months ago
JSON representation
A tiny HTTP benchmarking and performance testing CLI tool.
- Host: GitHub
- URL: https://github.com/shellshape/rush
- Owner: shellshape
- License: mit
- Created: 2023-07-04T18:47:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-18T13:32:31.000Z (almost 2 years ago)
- Last Synced: 2025-02-25T05:51:27.273Z (11 months ago)
- Topics: benchmark, cli, http, http-benchmarking, performance-analysis, requests, rust
- Language: Rust
- Homepage:
- Size: 70.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rush
A tiny HTTP benchmarking and performance testing CLI tool.
This tool has been primarily created to collect the data for [this project](https://github.com/zekroTJA/vercel-benchmarks), but it is also desigend to be used in a general purpose manner.
## Usage
```
$ rush --help
A tiny HTTP benchmarking and performance testing CLI tool.
Usage: rush [OPTIONS]
Arguments:
The URL to be requested
Options:
-X, --method The HTTP method to be used [default: GET]
-H, --header The HTTP headers to be sent with the request; format is 'key: value'
-b, --body The body content to be sent with the request
-f, --body-file Reads the contents of the file and uses it as body for the request; overwrites `body`, if both set
-c, --count The amount of requests which will be sent [default: 1] [short aliases: n]
-p, --parallel The maximum amount of requests which will be sent concurrently at a given time [default: 1]
-w, --warmup Perform warmup requests which do not count to the benchmark result
-w, --wait A duration awaited before a request is sent; you can pass a range (format: 'from..to', e.g. '10ms..20ms') from which a random duration will be picked
-o, --output Writes the results of each request formatted as CSV to the given output directory; appends the file if it already exists
--csv Prints the results of each request to stdout CSV formatted; bypasses `silent`, if set
-s, --silent Do not print any output
-i, --insecure Disable TLS certificate invalidation
-h, --help Print help
-V, --version Print version
```
## Install
You can either download the latest release builds form the [Releases page](https://github.com/shellshape/rush/releases) or you can install it using cargo install.
```
cargo install --git https://github.com/shellshape/rush
```
Alternatively, you can also use the provided Docker image.
```
docker run --rm -it ghcr-io/shellshape/rush \
https://example.com -X GET -n 100 -p 3 -w 10ms..20ms --csv \
> results.csv
```