
Installation
Install using cargo
:
sh
cargo install cfspeedtest
Or download the latest binary release here: cfspeedtest/releases/latest
Usage
```
cfspeedtest --help
Unofficial CLI for speed.cloudflare.com
Usage: cfspeedtest [OPTIONS]
Options:
-n, --nr-tests
Number of test runs per payload size. Needs to be at least 4 [default: 10]
--nr-latency-tests
Number of latency tests to run [default: 25]
-m, --max-payload-size
The max payload size in bytes to use [100k, 1m, 10m, 25m or 100m] [default: 10MB]
-o, --outupt-format
Set the output format [csv, json or json-pretty] > This silences all other output to stdout
-v, --verbose
Enable verbose output i.e. print out boxplots of the measurements
-h, --help
Print help
-V, --version
Print version
```
Development
TODO
- [ ] Dynamic payload sizing depending on network speed
- [ ] Consider server processing time in measurements
- [X] ~~CLI arguments (nr of tests, payload sizes, verbosity)~~
- [X] Clean up output
- [X] Boxplot for measurements
- [ ] Asciinema recording in readme
- [X] Publish crate
- [X] ~~Install and~~ ~~usage instructions~~
- [X] ~~Add Serde to provide CSV/ JSON and JSON-pretty output~~
Logging
Set the log level using the RUST_LOG
env var:
sh
RUST_LOG=debug cargo run
Release
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.
sh
git tag v1.0.0
git push origin v1.0.0
On crates.io
- Update
cfspeedtest
version in Cargo.toml
cargo publish --dry-run
- Verify contents using
cargo package --list
- Upload to crates.io
cargo publish