downstat
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file downstat-0.1.1.tar.gz.
File metadata
- Download URL: downstat-0.1.1.tar.gz
- Upload date:
- Size: 41.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df2ddee71dea0161c9974542f9369fde2efd24827fb9cc0f0558f7819cfce7fa
|
|
| MD5 |
1b7f5123f7a6a1ce1013acd76aed0560
|
|
| BLAKE2b-256 |
78ff1cf4dd1b3e642c868c54eb438cf8d3e7c4ce44add7c3f47ccd8338c7ca44
|
File details
Details for the file downstat-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: downstat-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebfd1bfd8125a16eb857355c018c127c68ad8e3edf5f77a28a488e8a6907f0d6
|
|
| MD5 |
c23193228a6cbc4ac38af3d1654beb1c
|
|
| BLAKE2b-256 |
364b4bbb5d2bd6bbae466ec1372fb856fc18c388a6fc53250bce21344066d177
|
File details
Details for the file downstat-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: downstat-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0304da0be6e0f132c3ff620c4d263d631f5e0eebc875e605b8fd5662c36ba2d
|
|
| MD5 |
287f5039e7f302dac79a4f2abcd93025
|
|
| BLAKE2b-256 |
e308d196767dad15685e511a29dbb337766c99f46b7a1279c7451eabbbc11105
|
File details
Details for the file downstat-0.1.1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: downstat-0.1.1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a67bc4a99ea7117edd0bff9d8b7046dadb8ff75a1df25e512549aca37e3fc3
|
|
| MD5 |
ba4584347789faadb4e8fb10755c9111
|
|
| BLAKE2b-256 |
b1bb1291ae97e1f1fe24f84994f5fc735ddde9319bbbe27648bb86b342600c69
|
File details
Details for the file downstat-0.1.1-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: downstat-0.1.1-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c24610cc112f5bd8b3cda3815ce39c7b3472f47993c1c8835813b35c1ff1a61
|
|
| MD5 |
a78bf8ab3c0baf447b0af89f6bed11ae
|
|
| BLAKE2b-256 |
fd2594e920f9e09e0ecf2ae7e3a5bf3181c2c3f551d8808d4946015e8b63dd90
|