Skip to main content

downstat

CI crates.io clispec compliant

Downloads and latest version for your published packages across crates.io, PyPI, npm and GitHub releases - in one view, instead of curling five APIs by hand.

Why

If you publish to several registries, "is this tool getting used, and what's live where?" means visiting crates.io, PyPI, npm, and a GitHub releases page one at a time. downstat <name> answers it in one shot; downstat --all does your whole portfolio. JSON when piped, a table in a terminal.

Install

cargo install downstat

Quickstart

# One package across every registry it's on
downstat dotpick
# PACKAGE   REGISTRY   VERSION   DOWNLOADS
# dotpick   crates.io  0.1.0     1,234 total · 56 (90d)
# dotpick   pypi       0.1.0     42 (30d)
# dotpick   github     v0.1.0    7 (releases)

# JSON for scripting
downstat dotpick | jq '.packages[0].registries[] | {registry, downloads}'

# Just one registry
downstat dotpick --only crates

# Your whole portfolio (from ./downstat.toml)
downstat --all

downstat.toml:

packages = ["dotpick", "whatport", "onym", "vership"]

What it reads

registry downloads latest version
crates.io total + 90-day ✓
PyPI 30-day (via pypistats.org) ✓
npm 30-day ✓
GitHub releases summed release-asset downloads ✓ (latest tag)

The GitHub repo is discovered from crates.io's repository field. A GITHUB_TOKEN/GH_TOKEN env var (optional) lifts GitHub's unauthenticated rate limit for large --all runs.

Counts are normalized but not directly comparable across registries (the windows differ - that's why each recent value is labelled). ghcr and Homebrew taps expose no public download counts, so they are omitted rather than faked.

Exit codes

code meaning
0 success
1 the queried name was found on no registry
2 a network or parse failure
3 usage error (bad arguments / config)

For agents (clispec)

downstat follows The CLI Spec: structured output on stdout, structured error envelopes on the last line of stderr, and a schema subcommand whose development-branch output validates against the candidate clispec.dev/schema/v0.3.json (checked by the test suite). Every command declares effects: read_only; the published release remains on frozen v0.2 until v0.3 freezes.

License

MIT

Releasing

Vership owns versioning, changelog generation, release commits, and tags. See the release runbook for the verified workflow and recovery policy.

Metadata

Release files for downstat 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for downstat 0.1.2
File Size Uploaded Provenance Actions
downstat-0.1.2.tar.gz 44.6 kB Without provenance Details for downstat-0.1.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for downstat 0.1.2
File Actions
downstat-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for downstat-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
downstat-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for downstat-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
downstat-0.1.2-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for downstat-0.1.2-py3-none-macosx_11_0_arm64.whl
downstat-0.1.2-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for downstat-0.1.2-py3-none-macosx_10_12_x86_64.whl

Total release size: 7.1 MB

Release files / downstat-0.1.2.tar.gz

Download URL downstat-0.1.2.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
94e0ab85dcc18916ae3e314f2829b16055c116470a92994be8df45233d1f6f43
BLAKE2b-256 checksum
How to use checksums
9a30e0f3f1f4fb470e14bb3124b972d0e057dce9e90a095287fbb3f5e6ba8020
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / downstat-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL downstat-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.8 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
ca58bc37be16cd11737188f4802cc9417ade11f85dd6c129f4c98d7bf3876d81
BLAKE2b-256 checksum
How to use checksums
4e7dbcc93efaaf14bfb8045ebfea0560d8222ef0e22d6149b14b8a7ac7a79b3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / downstat-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL downstat-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.8 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
b058d20cfdd02210cd33f227b2d29530d02270caa58524bbc6fc49e814cb582a
BLAKE2b-256 checksum
How to use checksums
cd2e37fd217c39f87be308d9d358c145365e2a10dae83ecfb8cef52a29ee666b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / downstat-0.1.2-py3-none-macosx_11_0_arm64.whl

Download URL downstat-0.1.2-py3-none-macosx_11_0_arm64.whl
Size 1.7 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ba6486353b7b8dd3abf02b88777d49387045cdda38b2222b8764a048ec2c7d0a
BLAKE2b-256 checksum
How to use checksums
b5a43797e044c3afa6133a5e01973ec92296a38dab578c0ab73549481c9c310a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / downstat-0.1.2-py3-none-macosx_10_12_x86_64.whl

Download URL downstat-0.1.2-py3-none-macosx_10_12_x86_64.whl
Size 1.8 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d3976fc5494cd1a76fd66d28f933a2a479bbaab544df26d2030a708b7f85de91
BLAKE2b-256 checksum
How to use checksums
2d9c7d90964ee01c69bdcf2da2033fa60bbd282343427ede513d533a0051674c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for downstat 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page