{"id":21864186,"url":"https://github.com/code-inflation/cfspeedtest","last_synced_at":"2026-04-05T00:02:24.466Z","repository":{"id":73710356,"uuid":"584464647","full_name":"code-inflation/cfspeedtest","owner":"code-inflation","description":"Unofficial CLI for speed.cloudflare.com","archived":false,"fork":false,"pushed_at":"2024-11-18T16:05:53.000Z","size":309,"stargazers_count":57,"open_issues_count":9,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-27T09:03:53.807Z","etag":null,"topics":["cli","cloudflare","rust","speedtest","speedtest-cli","speedtests"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-inflation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-02T16:36:24.000Z","updated_at":"2024-11-27T04:00:59.000Z","dependencies_parsed_at":"2024-01-03T10:48:07.789Z","dependency_job_id":"30d2ba0e-761a-4bd8-b7df-533ca82fa192","html_url":"https://github.com/code-inflation/cfspeedtest","commit_stats":{"total_commits":102,"total_committers":2,"mean_commits":51.0,"dds":0.02941176470588236,"last_synced_commit":"05a5980cc3111b8df22701f6d663f8130bce54a0"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fcfspeedtest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fcfspeedtest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fcfspeedtest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-inflation%2Fcfspeedtest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-inflation","download_url":"https://codeload.github.com/code-inflation/cfspeedtest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234921,"owners_count":20905854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cloudflare","rust","speedtest","speedtest-cli","speedtests"],"created_at":"2024-11-28T04:07:50.206Z","updated_at":"2026-01-17T00:12:16.161Z","avatar_url":"https://github.com/code-inflation.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cfspeedtest - Unofficial CLI for [speed.cloudflare.com](https://speed.cloudflare.com)\n![CI](https://github.com/code-inflation/cfspeedtest/actions/workflows/CI.yml/badge.svg)\n![Release](https://github.com/code-inflation/cfspeedtest/actions/workflows/release.yaml/badge.svg)\n![Crates.io Version](https://img.shields.io/crates/v/cfspeedtest)\n![Crates.io Downloads](https://img.shields.io/crates/d/cfspeedtest?label=Crates.io%20downloads)\n\n\n## Installation\nInstall using `cargo`:\n```sh\ncargo install cfspeedtest\n```\n\nOr download the latest binary release here: [cfspeedtest/releases/latest](https://github.com/code-inflation/cfspeedtest/releases/latest)\n\nAlternatively there is also a [docker image available on dockerhub](https://hub.docker.com/r/cybuerg/cfspeedtest)\n```sh\ndocker run cybuerg/cfspeedtest\n```\n\n## Usage\n```\n\u003e cfspeedtest --help\nUnofficial CLI for speed.cloudflare.com\n\nUsage: cfspeedtest [OPTIONS]\n\nOptions:\n  -n, --nr-tests \u003cNR_TESTS\u003e\n          Number of test runs per payload size [default: 10]\n      --nr-latency-tests \u003cNR_LATENCY_TESTS\u003e\n          Number of latency tests to run [default: 25]\n  -m, --max-payload-size \u003cMAX_PAYLOAD_SIZE\u003e\n          The max payload size in bytes to use [100k, 1m, 10m, 25m or 100m] [default: 25MB]\n  -o, --output-format \u003cOUTPUT_FORMAT\u003e\n          Set the output format [csv, json or json-pretty] \u003e This silences all other output to stdout [default: StdOut]\n  -v, --verbose\n          Enable verbose output i.e. print boxplots of the measurements\n      --ipv4 [\u003cIPv4\u003e]\n          Force IPv4 with provided source IPv4 address or the default IPv4 address bound to the main interface\n      --ipv6 [\u003cIPv6\u003e]\n          Force IPv6 with provided source IPv6 address or the default IPv6 address bound to the main interface\n  -d, --disable-dynamic-max-payload-size\n          Disables dynamically skipping tests with larger payload sizes if the tests for the previous payload size took longer than 5 seconds\n      --download-only\n          Test download speed only\n      --upload-only\n          Test upload speed only\n      --generate-completion \u003cCOMPLETION\u003e\n          Generate shell completion script for the specified shell [possible values: bash, elvish, fish, powershell, zsh]\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\nExample usage:  \n[![asciicast](https://asciinema.org/a/Moun5mFB1sm1VFkkFljG9UGyz.svg)](https://asciinema.org/a/Moun5mFB1sm1VFkkFljG9UGyz)\n\nExample with json-pretty output:  \n[![asciicast](https://asciinema.org/a/P6IUAADtaCq3bT18GbYVHmksA.svg)](https://asciinema.org/a/P6IUAADtaCq3bT18GbYVHmksA)\n\n### Shell Completion\n\n`cfspeedtest` supports generating shell completion scripts. Use the `--generate-completion` flag followed by your shell name (e.g., `bash`, `zsh`, `fish`, `powershell`, `elvish`).\n\nExample for bash (add to `~/.bashrc` or similar):\n```sh\ncfspeedtest --generate-completion bash \u003e ~/.local/share/bash-completion/completions/cfspeedtest\n# Or, if you don't have a completions directory set up:\n# source \u003c(cfspeedtest --generate-completion bash)\n```\n\nExample for zsh (add to `~/.zshrc` or similar):\n```sh\n# Ensure your fpath includes a directory for completions, e.g., ~/.zfunc\n# mkdir -p ~/.zfunc\n# echo 'fpath=(~/.zfunc $fpath)' \u003e\u003e ~/.zshrc\ncfspeedtest --generate-completion zsh \u003e ~/.zfunc/_cfspeedtest\n# You may need to run compinit:\n# autoload -U compinit \u0026\u0026 compinit\n```\n\nExample for fish:\n```sh\ncfspeedtest --generate-completion fish \u003e ~/.config/fish/completions/cfspeedtest.fish\n```\n\n\n## Development\n\n### Logging\nSet the log level using the `RUST_LOG` env var:  \n```sh\nRUST_LOG=debug cargo run\n```\n### Release\n#### Using `cargo-release`\nInstall `cargo-release`:\n```sh\ncargo install cargo-release\n```\nCreate the release (version bump levels are `[patch, minor, major]`):\n```sh\ncargo release patch --execute\n```\nThis 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.\n\n#### On GitHub\nRelease builds are published automatically using github actions. They are triggered when a git tag in the format `v[0-9]+.*` is pushed.\n```sh\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n#### On crates.io\n1. Update `cfspeedtest` version in `Cargo.toml`\n2. `cargo publish --dry-run`\n3. Verify contents using `cargo package --list`\n4. Upload to crates.io `cargo publish`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-inflation%2Fcfspeedtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-inflation%2Fcfspeedtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-inflation%2Fcfspeedtest/lists"}