crates.io data-ecosystem download velocity (monthly)
Monthly download-velocity ranking of Rust crates in the data/ML ecosystem. Nine data-relevant crates.io categories (artificial-intelligence, computer-vision, data-structures, database, database-implementations, mathematics, science, simulation, visualization) — the official curator-assigned category listings — are crawled in recent-downloads order into a candidate universe; the keyless crates.io API supplies per-version daily download series, aggregated to trailing-30-day and prior-30-day totals, and the latest non-yanked version's license and publication date. Crates clearing the 10,000-download floor are classified into a curated 9-category taxonomy by a deterministic ordered rule set over their category membership and keywords. The velocity score is the min-max-normalized trailing-30d download count (0-100) and the growth score the min-max-normalized month-over-month growth rate (clipped to -100%/+1000%; new entrants pinned to the +1000% cap and flagged); trend_score is their 50/50 composite (0-100) and trend_rank orders by trend_score descending (ties: trailing-30d downloads desc, then crate name). Columns: month, fetch timestamp, crate name / URL / latest version / description / license id / publication date, categories / taxonomy category, exact source API URL for each row value (daily downloads series, latest-version record — any number is one GET away from its source), trailing-30d and prior-30d downloads, 60d total and per-day average, growth rate, new-entrant flag, velocity/growth/trend scores (0-100), trend rank. fetched_at is the trailing window end (UTC day granularity), so re-ingesting the same window is a no-op. Primary key: (month, crate_name). Cadence: monthly. Nullability: license_id and published_date may be empty when upstream supplies none; scores and ranks are never null. Caveats: crates.io counts CDN downloads (automated and CI traffic included, not just human adoption), so raw velocity favors widely-depended-on infrastructure; the taxonomy is a first-match heuristic over category membership and keywords, not an authoritative classification; per-crate license ids are author-supplied and informational only. Sample use: order by trend_rank for the month's fastest-rising data crates, or filter category = 'machine-learning'.
- Rows
- 1,478
- Columns
- 23
- Source cadence
- Monthly
- Last refreshed
- Sep 25, 2026
- Theme
- technology
| Column | Type | Description |
|---|---|---|
| month | string | Month of the trailing 30-day window (YYYY-MM, from the window end date). (unit: YYYY-MM) |
| fetched_at | string | Timestamp when this row was collected (UTC, day granularity; the trailing-window end). Re-ingesting the same window is a no-op. (unit: timestamp) |
| crate_name | string | Crate name as published on crates.io; primary-key component together with month. (unit: string) |
| crate_url | string | Canonical public crates.io crate page URL (https://crates.io/crates/<name>); never null. (unit: url) |
| version | string | Latest non-yanked version number at fetch time. (unit: string) |
| description | string | Crate description as authored on crates.io. (unit: string) |
| license_id | string | License id of the latest non-yanked version; author-supplied and informational only. (unit: string) |
| published_date | string | Publication date of the latest non-yanked version (YYYY-MM-DD). (unit: date) |
| categories | string | Comma-joined crates.io categories whose listings included this crate (e.g. science,data-structures). Kept as collection provenance. (unit: list) |
| category | string | Curated category from a deterministic ordered rule set over category membership and keywords: machine-learning, computer-vision, dataframe-analytics, database, visualization, mathematics, scientific-computing, simulation, data-structures, or other. First matching rule wins; a heuristic, not an authoritative classification. (unit: category) |
| metadata_source_url | string | Exact crates.io API URL behind this row's version/license metadata: GET /api/v1/crates/<name>/versions. (unit: url) |
| trailing_30d_source_url | string | Exact crates.io API URL behind this row's trailing_30d_downloads: GET /api/v1/crates/<name>/downloads (daily per-version series; window sums are derived in the connector). (unit: url) |
| prior_30d_source_url | string | Exact crates.io API URL behind this row's prior_30d_downloads: GET /api/v1/crates/<name>/downloads over the 30 days before the trailing window. (unit: url) |
| trailing_30d_downloads | integer | Download count over the trailing 30 complete days, summing the per-version daily series. Includes automated and CI traffic, not just human adoption. (unit: downloads) |
| prior_30d_downloads | integer | Download count over the 30 days preceding the trailing window, from the same daily series. 0 for new entrants. (unit: downloads) |
| downloads_60d_total | integer | trailing_30d_downloads + prior_30d_downloads. (unit: downloads) |
| downloads_per_day_60d | float | downloads_60d_total / 60. (unit: downloads/day) |
| growth_rate | float | Month-over-month growth: (trailing30 - prior30) / prior30, clipped to [-1.0, +10.0] (-100% to +1000%). New entrants (prior30 = 0) are pinned to +10.0 and flagged. (unit: ratio) |
| new_entrant | integer | 1 when prior_30d_downloads = 0 (no downloads in the prior window — e.g. newly published crates); 0 otherwise. (unit: flag) |
| velocity_score | float | Min-max-normalized trailing_30d_downloads within the snapshot, scaled 0-100. (unit: 0-100) |
| growth_score | float | Min-max-normalized growth_rate within the snapshot, scaled 0-100. (unit: 0-100) |
| trend_score | float | Download-velocity composite: 50% velocity_score + 50% growth_score, 0-100 within the snapshot. (unit: 0-100) |
| trend_rank | integer | Rank by trend_score descending (1 = fastest); ties broken by trailing_30d_downloads, then crate name. (unit: rank) |
First 10 sample rows — a preview, not the complete dataset.
| month | fetched_at | crate_name | crate_url | version | description | license_id | published_date | categories | category | metadata_source_url | trailing_30d_source_url | prior_30d_source_url | trailing_30d_downloads | prior_30d_downloads | downloads_60d_total | downloads_per_day_60d | growth_rate | new_entrant | velocity_score | growth_score | trend_score | trend_rank |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09 | 2026-09-24T00:00:00+00:00 | hashbrown | https://crates.io/crates/hashbrown | 0.17.1 | A Rust port of Google's SwissTable hash map | MIT OR Apache-2.0 | 2026-05-09 | data-structures | data-structures | https://crates.io/api/v1/crates/hashbrown/versions | https://crates.io/api/v1/crates/hashbrown/downloads | https://crates.io/api/v1/crates/hashbrown/downloads | 157,001,388 | 134,885,410 | 291,886,798 | 4,864,780 | 0.164 | 0 | 100 | 9.71 | 54.86 | 1 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | pin-list | https://crates.io/crates/pin-list | 0.1.2 | A safe `Pin`-based intrusive doubly linked list | MIT | 2025-03-27 | data-structures | data-structures | https://crates.io/api/v1/crates/pin-list/versions | https://crates.io/api/v1/crates/pin-list/downloads | https://crates.io/api/v1/crates/pin-list/downloads | 249,731 | 9,927 | 259,658 | 4,327.6 | 10 | 0 | 0.15 | 100 | 50.08 | 2 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | candle-onnx | https://crates.io/crates/candle-onnx | 0.11.0 | ONNX support for Candle | MIT OR Apache-2.0 | 2026-06-26 | science | scientific-computing | https://crates.io/api/v1/crates/candle-onnx/versions | https://crates.io/api/v1/crates/candle-onnx/downloads | https://crates.io/api/v1/crates/candle-onnx/downloads | 199,834 | 13,153 | 212,987 | 3,549.8 | 10 | 0 | 0.12 | 100 | 50.06 | 3 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | maxminddb | https://crates.io/crates/maxminddb | 0.32.0 | Library for reading MaxMind DB format used by GeoIP2 and GeoLite2 | ISC | 2026-09-12 | database | database | https://crates.io/api/v1/crates/maxminddb/versions | https://crates.io/api/v1/crates/maxminddb/downloads | https://crates.io/api/v1/crates/maxminddb/downloads | 137,357 | 3,347 | 140,704 | 2,345.1 | 10 | 0 | 0.08 | 100 | 50.04 | 4 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | cached | https://crates.io/crates/cached | 4.0.0 | Generic cache implementations and simplified function memoization | MIT | 2026-09-05 | data-structures | data-structures | https://crates.io/api/v1/crates/cached/versions | https://crates.io/api/v1/crates/cached/downloads | https://crates.io/api/v1/crates/cached/downloads | 78,899 | 2,650 | 81,549 | 1,359.2 | 10 | 0 | 0.04 | 100 | 50.02 | 5 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | llm-multimodal | https://crates.io/crates/llm-multimodal | 1.12.0 | Multimodal processing for vision and other modalities | Apache-2.0 | 2026-09-24 | science | scientific-computing | https://crates.io/api/v1/crates/llm-multimodal/versions | https://crates.io/api/v1/crates/llm-multimodal/downloads | https://crates.io/api/v1/crates/llm-multimodal/downloads | 68,048 | 2,230 | 70,278 | 1,171.3 | 10 | 0 | 0.04 | 100 | 50.02 | 6 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | ts_bitset | https://crates.io/crates/ts_bitset | 0.6.1 | compact, efficient, non-allocating bitset | BSD-3-Clause | 2026-09-18 | data-structures | data-structures | https://crates.io/api/v1/crates/ts_bitset/versions | https://crates.io/api/v1/crates/ts_bitset/downloads | https://crates.io/api/v1/crates/ts_bitset/downloads | 59,492 | 3,132 | 62,624 | 1,043.7 | 10 | 0 | 0.03 | 100 | 50.02 | 7 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | ts_dynbitset | https://crates.io/crates/ts_dynbitset | 0.6.1 | dynamically-growable bitset based on ts_bitset | BSD-3-Clause | 2026-09-18 | data-structures | data-structures | https://crates.io/api/v1/crates/ts_dynbitset/versions | https://crates.io/api/v1/crates/ts_dynbitset/downloads | https://crates.io/api/v1/crates/ts_dynbitset/downloads | 59,413 | 3,082 | 62,495 | 1,041.6 | 10 | 0 | 0.03 | 100 | 50.02 | 8 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | betteroffice-drawingml | https://crates.io/crates/betteroffice-drawingml | 0.2.0 | Shared DrawingML colors, themes, shape models, and preset geometry. | Apache-2.0 | 2026-09-16 | data-structures | data-structures | https://crates.io/api/v1/crates/betteroffice-drawingml/versions | https://crates.io/api/v1/crates/betteroffice-drawingml/downloads | https://crates.io/api/v1/crates/betteroffice-drawingml/downloads | 57,029 | 193 | 57,222 | 953.7 | 10 | 0 | 0.03 | 100 | 50.02 | 9 |
| 2026-09 | 2026-09-24T00:00:00+00:00 | hannoy | https://crates.io/crates/hannoy | 0.2.0 | HNSW Approximate Nearest Neighbors in Rust, based on LMDB and optimized for memory usage | MIT | 2026-08-14 | data-structures,database,science | database | https://crates.io/api/v1/crates/hannoy/versions | https://crates.io/api/v1/crates/hannoy/downloads | https://crates.io/api/v1/crates/hannoy/downloads | 45,147 | 1,570 | 46,717 | 778.6 | 10 | 0 | 0.02 | 100 | 50.01 | 10 |
Profiled Sep 25, 2026 from snapshot 20260925T152148Z-96b11f410a0a
Measured- Completeness
- 100%
- Rows
- 1,478
- Columns
- 23
- Columns with gaps
- 0
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| monthvarchar | 0% | 1 | — |
|
| fetched_atvarchar | 0% | 1 | — |
|
| crate_namevarchar | 0% | 1,305 | — |
|
| crate_urlvarchar | 0% | 1,584 | — |
|
| versionvarchar | 0% | 387 | — |
|
| descriptionvarchar | 0% | 1,462 | — |
|
| license_idvarchar | 0% | 65 | — |
|
| published_datevarchar | 0% | 797 | — |
|
| categoriesvarchar | 0% | 27 | — |
|
| categoryvarchar | 0% | 9 | — |
|
| metadata_source_urlvarchar | 0% | 1,482 | — |
|
| trailing_30d_source_urlvarchar | 0% | 1,481 | — |
|
| prior_30d_source_urlvarchar | 0% | 1,481 | — |
|
| trailing_30d_downloadsbigint | 0% | 1,605 | 10,011 → 157,001,388median 68,720 | 30 outside 1st–99th percentile |
| prior_30d_downloadsbigint | 0% | 1,278 | 0 → 134,885,410median 56,979 | 30 outside 1st–99th percentile |
| downloads_60d_totalbigint | 0% | 1,291 | 10,416 → 291,886,798median 129,386 | 30 outside 1st–99th percentile |
| downloads_per_day_60ddouble | 0% | 1,483 | 173.6 → 4,864,780median 2,156 | 30 outside 1st–99th percentile |
| growth_ratedouble | 0% | 1,235 | -0.8935 → 10median 0.2023 | 14 outside 1st–99th percentile |
| new_entrantbigint | 0% | 2 | 0 → 1median 0 | |
| velocity_scoredouble | 0% | 234 | 0 → 100median 0.04 | 15 outside 1st–99th percentile |
| growth_scoredouble | 0% | 780 | 0 → 100median 10.06 | 14 outside 1st–99th percentile |
| trend_scoredouble | 0% | 632 | 0 → 54.86median 5.38 | 28 outside 1st–99th percentile |
| trend_rankbigint | 0% | 1,802 | 1 → 1,478median 739.5 | 30 outside 1st–99th percentile |
- Current
20260925T152148Z-96b11f410a0a · sha256 96b11f410a0a…
1,478 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/crates_data_signals/crates_data_velocity_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/crates_data_signals/crates_data_velocity_monthly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/crates_data_signals/crates_data_velocity_monthly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260925T152148Z-96b11f410a0a and its content hash, so readers get exactly the data you used.
crates.io data-ecosystem download velocity (agent-curated). (2026). crates.io data-ecosystem download velocity (monthly) [Data set, snapshot 20260925T152148Z-96b11f410a0a, sha256 96b11f410a0a]. Datazimuts. Retrieved 2026-09-25, from https://datazimuts.com/en/datasets/crates_data_signals/crates_data_velocity_monthly?snapshot=20260925T152148Z-96b11f410a0a
@misc{dz_crates_data_signals_crates_data_velocity_96b11f41,
title = {{crates.io data-ecosystem download velocity (monthly)}},
author = {{crates.io data-ecosystem download velocity (agent-curated)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/crates_data_signals/crates_data_velocity_monthly?snapshot=20260925T152148Z-96b11f410a0a}},
note = {Snapshot 20260925T152148Z-96b11f410a0a, sha256 96b11f410a0a8869fe0d2847d396af9e4b36b4e41e27fb53d0c079e909e8c109; accessed 2026-09-25}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=crates_data_signals%2Fcrates_data_velocity_monthly&lang=en&theme=auto&snapshot=20260925T152148Z-96b11f410a0a&x=published_date&y=trailing_30d_downloads&agg=avg" title="crates.io data-ecosystem download velocity (monthly)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.