Skip to main content

Downloads and latest version for your packages across crates.io, PyPI, npm and GitHub releases. Agent-friendly: JSON when piped.

Project description

downstat

CI crates.io clispec

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 output validates against clispec.dev/schema/v0.2.json (checked by the test suite). Every command is read-only (mutating: false).

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

downstat-0.1.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

downstat-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

downstat-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

downstat-0.1.0-py3-none-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

downstat-0.1.0-py3-none-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file downstat-0.1.0.tar.gz.

File metadata

  • Download URL: downstat-0.1.0.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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

Hashes for downstat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6ed947573ce406be3afd185a719080525920af21e6947ae48e4b451badc5c61a
MD5 a4e3ba54909b99a9bf6314ce0b4c05d6
BLAKE2b-256 45eb94bf97026479540e8e75d49d42715ee81c13551c6dc46bc3afa10f7ba9e4

See more details on using hashes here.

File details

Details for the file downstat-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: downstat-0.1.0-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.11.23 {"installer":{"name":"uv","version":"0.11.23","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

Hashes for downstat-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 154c44708178beec050069cbefbd58ad656c5727c469701dbdcbe80ef315993b
MD5 85b9463574f11f16bfa7e21ef130046b
BLAKE2b-256 92159ec6ab6e56e5f70be3467bab2e7257de10802297ccff3484d5af56b53d31

See more details on using hashes here.

File details

Details for the file downstat-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: downstat-0.1.0-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.11.23 {"installer":{"name":"uv","version":"0.11.23","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

Hashes for downstat-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5253a544552890b85c8381e5c83a28e92c0d6e5ac6b7d284ab2a387412f5f416
MD5 9b86d852186100e5a0fb36aad897420d
BLAKE2b-256 3ed783b3fc4ebe33321c7e7747ca468fbc5f0a5a7708277f3ff0d312455f3a34

See more details on using hashes here.

File details

Details for the file downstat-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: downstat-0.1.0-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.11.23 {"installer":{"name":"uv","version":"0.11.23","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

Hashes for downstat-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d024770f404a0ac96330e45da7b2a7120a6dfbffb7233d98ef9b88650012e7cd
MD5 0ddcd54315b60fb03112e52b81d63376
BLAKE2b-256 6bb13e505f6aec5d20c5a19a41ad4be2661f7afa7c68b3525fc62b1cec77a557

See more details on using hashes here.

File details

Details for the file downstat-0.1.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: downstat-0.1.0-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.11.23 {"installer":{"name":"uv","version":"0.11.23","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

Hashes for downstat-0.1.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff14736b96556b93266ac6e7e8735fba87cb34b8f9aa6a7a1ee33b98d62bd845
MD5 d036fb4695a4e35d07f74ede3df21c03
BLAKE2b-256 5e07b265eedbf1e3520e65a56d639eb01022609878d90076fbdf96ab1717f21e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page