16 stable releases
1.3.0 | Dec 2, 2024 |
---|---|
1.2.6 | Aug 29, 2024 |
1.2.5 | Jul 16, 2024 |
1.2.3 | Mar 20, 2024 |
0.1.10 | Mar 17, 2023 |
#381 in Command line utilities
187 downloads per month
27KB
603 lines
cfspeedtest - Unofficial CLI for speed.cloudflare.com
Installation
Install using cargo
:
cargo install cfspeedtest
Or download the latest binary release here: cfspeedtest/releases/latest
Alternatively there is also a docker image available on dockerhub
docker run cybuerg/cfspeedtest
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
--download-only
Test download speed only
--upload-only
Test upload speed only
-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 cargo run
Release
Using cargo-release
Install cargo-release
:
cargo install cargo-release
Create the release (version bump levels are [patch, minor, major]
):
cargo release patch --execute
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.
git tag v1.0.0
git push origin v1.0.0
On crates.io
- Update
cfspeedtest
version inCargo.toml
cargo publish --dry-run
- Verify contents using
cargo package --list
- Upload to crates.io
cargo publish
Dependencies
~9–21MB
~291K SLoC