cfspeedtest - Unofficial CLI for speed.cloudflare.com
Installation
Install using cargo:
Or download the latest binary release here: cfspeedtest/releases/latest
Alternatively there is also a docker image available on dockerhub
Usage
> cfspeedtest --help
Unofficial CLI for speed.cloudflare.com
Usage: cfspeedtest [OPTIONS]
Options:
-n, --nr-tests <NR_TESTS>
Number of test runs per payload size. Needs to be at least 4 [default: 10]
--nr-latency-tests <NR_LATENCY_TESTS>
Number of latency tests to run [default: 25]
-m, --max-payload-size <MAX_PAYLOAD_SIZE>
The max payload size in bytes to use [100k, 1m, 10m, 25m or 100m] [default: 25MB]
-o, --output-format <OUTPUT_FORMAT>
Set the output format [csv, json or json-pretty] > This silences all other output to stdout [default: StdOut]
-v, --verbose
Enable verbose output i.e. print boxplots of the measurements
--ipv4
Force usage of IPv4
--ipv6
Force usage of IPv6
-d, --disable-dynamic-max-payload-size
Disables dynamically skipping tests with larger payload sizes if the tests for the previous payload size took longer than 5 seconds
-h, --help
Print help
-V, --version
Print version
Example with json-pretty output:
Development
Logging
Set the log level using the RUST_LOG env var:
RUST_LOG=debug
Release
Using cargo-release
Install cargo-release:
Create the release (version bump levels are [patch, minor, major]):
This will bump the cfspeedtest version in both Cargo.toml and Cargo.lock and run cargo publish to push the release on crates.io. Additionally a version git tag is created and pushed to master triggering the GH action that creates the binary releases.
On GitHub
Release builds are published automatically using github actions. They are triggered when a git tag in the format v[0-9]+.* is pushed.
On crates.io
- Update
cfspeedtestversion inCargo.toml cargo publish --dry-run- Verify contents using
cargo package --list - Upload to crates.io
cargo publish