Why are crates.io download counts inflated?
Short answer
Because a crates.io "download" is one fetch of a .crate file from the crates.io CDN, not a person. Every CI run on a clean machine fetches again, every new version gets fetched by automated systems within hours, and one install of a crate split into a workspace counts once per member crate. In our study of 69 crates, 80.1% of 3,676 downloads landed on the day a version was published or the day after, and the number that reflects real use, the quiet-day baseline, was 339.

Part of the article crates.io download count: 80% of ours arrived with a new version. This page answers one question from it in depth.
On this page · 10 sections
That does not make the count fake. The rules are public and reasonable. It just measures fetches, so you have to split it into parts before it tells you anything about users. Here is how.
Key numbers
| What | Number | Source |
|---|---|---|
| What is counted | Requests for a .crate file at static.crates.io, from CDN logs | crates.io blog, Mar 11 2024 |
| Which clients count | cargo user agents, or no user agent, since Oct 29 2025 | crates.io PR #12210 |
| Daily history kept per crate | Last 90 days, split by version | crates.io data access |
| Our crates / versions | 69 / 235 | our study, crates.io API, Oct 17 2026 |
| Downloads Jul 20 to Oct 16 2026 | 3,676 | same |
| On a publish day or the day after | 2,945 (80.1%) | same |
| On "sweep" days, most crates hit at once | 392 (10.7%) | same |
| Quiet days | 339 (9.2%), about 3.8 a day | same |
| Average downloads per new version, day 0 / day 1 | 13.45 / 1.21 | same, 181 versions |
| Lowest all-time count for any version | 9 | same |
| Correlation, version count vs downloads | 0.82 | same |
| Crates outside ours that depend on any of the 69 | 0 | same |
What one download is

Since March 2024, cargo downloads crates straight from the static.crates.io CDN, and crates.io counts downloads by reading the CDN's request logs. The crates.io team said at the time that this raised the numbers of most crates, especially small ones, because mirrors that had been fetching from the CDN all along were now counted.
On October 29, 2025, crates.io merged a change to count only requests whose user agent belongs to cargo. The pull request says the goal was to "filter out all of the systems that appear to mirror crates.io." Requests with no user agent at all are still counted, and Buck and Bazel are not, for now.
So a download means: some machine running cargo did not have that exact version cached and fetched it. That is why the same crate can show 30 downloads a day from one company's CI pipeline and 1 download, ever, from a developer who builds it every day on a laptop.
The three things inside your number
In our 69 crates, every day of downloads fell into one of three buckets, by a simple mechanical rule:
- Publish window (80.1%). The crate published a version that day or the day before. Something fetches every new version within hours, whether or not a human ever reads it. Our guess, and it is only a guess, is registry mirrors that follow the index, build farms and security scanners. The effect is consistent: about 13 downloads on day 0, about 1 on day 1, then near zero.
- Sweep days (10.7%). No publish, but most of the crates got downloaded on the same day. On October 9, 2026, all 69 crates got hit, 184 downloads, with nothing published. No person installs a trading library, a game engine and a stats crate in one afternoon.
- Quiet days (9.2%). Everything else: 339 downloads in 89 days. This is the closest thing to someone, somewhere, building with your code. One crate, fin-primitives, made up 128 of them.

Why releasing more makes the number bigger
Because every new version gets its automatic fetches, the number of versions you publish predicts your downloads better than anything about the code. Across our crates the correlation between version count and all-time downloads was 0.82. Of 235 versions, none had fewer than 9 downloads, and our 19 single-version crates, including internal plumbing nobody outside the project has a reason to use, still collected 10 to 28 each.

Workspaces multiply this. When you publish a Cargo workspace, every member becomes its own crate. One of ours, corescout-mcp, has 16 of our other crates in its dependency tree, so a single clean install can show up as up to 17 downloads on 17 different pages.
How to read any crate's number in two minutes
- Open the crate page and look at the colors. The 90-day chart is stacked by version. Spikes in a new color right after a release are mostly automatic. The low line between releases is the part that matters.
- Check Dependents. The Dependents tab, the reverse dependencies API and GitHub's "Used by" show real adoption. One crate in someone else's tree beats a thousand release-day fetches, because their CI then downloads yours on every run.
- Discount workspaces. If the crate is one of 20 members of the same project, its count reflects the project's installs, not separate demand.
- Compare quiet days, not totals. Our free crate download checker shows how much of any crate's last 90 days arrived within 2 days of a release, and its quiet-day median, in your browser.
Common misconceptions
"Downloads equal users."
The recordOne user with a warm cache adds 1. One CI pipeline can add 30 a day. The count measures fetches, and the ratio of fetches to people varies by orders of magnitude.
"crates.io download counts are fake."
The recordThe counting is public, consistent and reasonable, and the 2025 change removed most mirror traffic. The number is real; it just answers "how often was this file fetched by cargo," not "how many people use this."
"A brand-new crate with 12 downloads on day one has been discovered."
The recordThat is the automatic baseline every new version gets. Twelve downloads on a random Tuesday three weeks later is the interesting signal.
"Publishing more often is a growth strategy."
The recordIt raises the count, which is exactly why the count cannot be used to judge popularity, and why people evaluating a crate look at dependents and recent activity instead.
Related
- crates.io download count: 80% of ours arrived with a new version: the full study, the script and every chart.
- How to publish a Rust crate: what happens on publish day, step by step.
- UUIDv7 vs UUIDv4: where we ranked libraries by download counts, with this caveat.
- Crate download checker: split any crate's number in your browser.
FAQ
What counts as a download on crates.io?
One request for a crate version's .crate file to the crates.io CDN, counted from the CDN's logs. Since October 29, 2025 only requests with a cargo user agent, or no user agent, are counted. It is not a count of users, installs or projects.
Why do new crates get downloads right away?
Something fetches every new version within hours of publish, whether or not anyone reads it. In our 181 versions, the average was 13.45 downloads on day 0 and 1.21 on day 1, and the lowest all-time count for any version was 9.
Do CI builds count as crates.io downloads?
Yes. A CI runner that starts with an empty cargo cache downloads every crate in the dependency tree on every run, and each of those fetches is a download if it uses cargo.
How do I see real usage of my crate?
Look at the downloads on days with no release (the quiet-day baseline), the Dependents tab, and repositories that depend on it. In our 69 crates the quiet baseline was 339 of 3,676 downloads in 89 days, about 3.8 a day.
Does crates.io count mirror downloads?
Not since October 29, 2025, when crates.io started ignoring requests whose user agent is not cargo. Before that change, and since March 2024 when counting moved to CDN logs, mirror fetches were counted.
Sources
All checked October 23, 2026.
crates.io (primary)
- Tobias Bieniek for the crates.io team, crates.io: Download changes, Rust Blog, March 11, 2024: cargo downloads straight from the static.crates.io CDN from March 12, 2024; downloads are counted from CDN log files; numbers rose for most crates, especially small ones, because mirror fetches were now counted.
- rust-lang/crates.io pull request #12210, "cdn_logs: Filter downloads by user agent", merged October 29, 2025: only cargo user agents count, requests without a user agent still count, Buck and Bazel ignored "for now".
- crates.io data access policy: API rate limit, User-Agent requirement, the daily database dump with the last 90 days of per-version downloads.
- crates.io page for fin-primitives (screenshot, October 17, 2026).
Our data
- Every number from our 69 crates comes from crates.io download count: 80% of ours arrived with a new version, pulled from the public crates.io API at 7:10 AM ET on October 17, 2026 (Jul 20 to Oct 16, 2026, 89 UTC days). The article includes the pull script and the classifier.
Images
- Hero screenshot, breakdown chart and per-version chart: from the parent article, made by Tensorust.
- "What one download is" diagram: made by Tensorust with matplotlib from the sources above. The CI and warm-cache rows illustrate the counting rule; they are not measurements.
Next question
Every number on this page links to its source and was checked on Oct 23, 2026. Spot an error or a newer figure? Email matt@tensorust.com and it gets fixed. Related: Crate download checker.
Read next
- Article · Oct 17, 2026crates.io download count: 80% of ours arrived with a new version
- Article · Oct 23, 2026Pick a UUIDv7 library that keeps order: 10 tested, .NET fails 50%
Get the next one by email.
What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.
No spam, never sold. Every email has a one-click unsubscribe.