An open API service indexing awesome lists of open source software.

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.

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
```