Growth of the crates.io registry
Crate downloads are growing at a rate of 2.3× per year.
crates.io has served 941.4 million downloads in a single day, which is more than all downloads in the first 47 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.5× higher than during weekends (down from 3.0× a year before).
There are 61,881 users or teams that have a crate on crates.io. The number of owners is growing at a rate of 1.3× per year.
Lib.rs has indexed 251461 crates.
Dependencies
Number of direct dependencies
Number of libraries explicitly used by each crate. Includes dev, build-time and optional dependencies.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
|
34790
|
19318
|
19978
|
22958
|
18838
|
15977
|
13966
|
12033
|
10761
|
9195
|
Number of transitive reverse dependencies (popularity)
How often each library crate is used as a dependency in other crates, directly or indirectly. Includes dev, build-time, and optional dependencies.
Development
How long a crate has been in development
Time between its oldest and newest release.
| one-off | ≤1 week | ≤1 month | ≤6 months | ≤1 year | ≤2 years | ≤3 years | ≤5 years | ≤7 years | ≤10 years | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
71810
|
51957
|
18178
|
29260
|
18187
|
21002
|
11747 | 12365 | 5376 | 2610 | 503 |
| cmw insectbox anvil-liquid-derive openvm-rv32-adapters dreamwell-runtime | simple-digraph modifier_macro mind_sdk_lb zsync tremor | zigbee2mqtt_types_vendor_zen yazi-shim poeledger-economy-data jiminy avin_utils | beleth npsimd wirewhale easy-jsonrpc-mw bs62 | nintendo-lz mpdclient-sys adaptive-card-rs jamtop dedupefs | google-cloud-websecurityscanner-v1 bevy_flair_style argentum_rest_infrastructure hass-entity-state rusty_analytics | serde_json5 combination tfhe-cuda-backend canbench-rs certreplace | pi_slotmap_tree serde_magnus netgauze-bgp-pkt tectonic_bridge_harfbuzz applesauce | koto_json matchit wgpu-profiler simplerand rust-releases | fallible-iterator autocfg streaming_algorithms dilithium kas-macros | libloading crowbook blip_buf fern djangohashers |
Time without any updates
Time since crate's most recent release. Keep in mind that some crates can be "done" and not need regular updates.
| ≤1 month | ≤3 months | ≤6 months | ≤1 year | ≤2 years | ≤3 years | ≤4 years | ≤5 years | ≤7 years | ≤10 years | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
42729
|
23758
|
19792
|
25218
|
34559
|
27192
|
21481
|
14590
|
21109
|
10996
|
1571 |
| pipenet libpetri-verification agentgif dreamwell-runtime nanodns | solana-short-vec partiql-catalog cranko gpuburden missiond-core | git-snow data-nasdaq fyi-core gifclip veilocity-prover | dissect sub-registrar aws_utils_firehose diesel-timescaledb clock-bound-shm | maelstrom-broker serde_json5 swamp-game tiberius_db_tester chessnut | local-type-alias subcryptor papa gtfs-rt memcrab-cache | salat_mv qemu-system-ppc64 bae2 cubism param_builder | memedsn kronos wordletron spv-rs markup5ever_arcdom | mi async_destruction siwa step-dir wrap_result | susy-jsonrpc-macros count_cache cargo-debug cargo-feature-analyst sparx | file_diff split_aud koukku google-datastore1_beta2 pwat |
Age
Time since crate's first release.
| ≤1 month | ≤3 months | ≤6 months | ≤1 year | ≤2 years | ≤3 years | ≤4 years | ≤5 years | ≤7 years | ≤10 years | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
19387
|
17269
|
16759
|
22526
|
36513
|
31765
|
26800
|
19716
|
30106
|
18238
|
3916 |
| agentgif dreamwell-runtime nanodns ai-time-core mg24-hal | unitforge_macros specl-tla verushash-rs bevy_woff gpuburden | claude-code-status-line yazi-shim fyi-core tinycbor-derive atlas-account-view | nesting sub-registrar scalop kotoba-cid reqsign-tencent-cos | mpdclient-sys thrashe serde_ssml api_req write_mode | glowdust wrpc-transport-derive-macro scopegraphs-regular-expressions atomic-bomb-engine rstrpc-macros | re_build_build_info netgauze-bgp-pkt lp-types shuttle-axum authzen-diesel-proc-macros | whereis pi_slotmap_tree polyresolver navigator pluser | cartesian etwin_dinoparc_client forktree rust-blockchain keywords | courgette smd_tests convute dfrs hash2hwaddr | split_aud pwat tdengine omg thread_local |
Number of releases per crate
Number of unique versions of each crate, excluding yanked versions.
Number of crates per user
How many crates a single account (user or team) owns. Excluding all other people in the world who have 0 crates.
| 1 | 2 | 3 | ≥6 | ≥25 | ≥50 | ≥75 | ≥100 | ≥150 | ≥200 | ≥1000 |
|---|---|---|---|---|---|---|---|---|---|---|
|
29282
|
10590
|
10871
|
8943
|
1145 | 292 | 119 | 90 | 42 | 50 | 2 |
| macournoyer knzconnor canadaduane mdub fd | osteele jaikoo jvantuyl raggi vic | lancecarlson joshuaclayton nakajima JackDanger peters | kolektiv brandonweeks madninja romanz jedbrown | jeluard upsuper ehuss oxidizer-crates-io-bot jpschorr navicore algesten arighi | arcnmx dylanmckay forecast-bio soywod ubugeeei MavenRain kardeiz 197g | snnsnn MOZGIII noamteyssier raviqqe bmbper Michael-F-Bryan bradleystachurski astraw | nymtech nearprotocol-ci boozook rivy nym21 doitian danielhenrymantilla matthiasbeyer | artifact-byted swc-bot greentic-ai wasmerio refcell PsichiX miralandlabs Dirbaio | noahgift googleapis mingyang91 mattsse dtolnay piot Wandalen dbolduc |
Sizes
Crate size (KB)
Amount of data downloaded as a compressed tarball. Size of code + bundled data files. Individual crate pages show size of uncompressed code.
| ≤1KB | ≤10KB | ≤50KB | ≤100KB | ≤500KB | ≤1MB | ≤5MB | ≤10MB | ≤38MB |
|---|---|---|---|---|---|---|---|---|
|
24004
|
76392
|
93863
|
19319
|
18297
|
3966 | 5925 | 1190 | 39 |
| pbbot modifier_macro hello_macro openvm-rv32-adapters umbrae-dlmm-sdk | nesting yesqlr rename unc-abi-client-impl rusqlite-struct-derive | todoist-rs minigrep_tupelo gearhash affinidi-vc gpwg | broomva npsimd matter-js-rs srx-rs nanodns | quizler vaultic scalop amtrack_rs brk_rolldown_common | deribit-http rsfdisk kn-cuda-eval clausen curve25519-dalek-fiat | google-material-design-icons-bin openapitor easy-alias hgrep trenchcoat | mpeg2ps lazytask fundoc image_ascii rubullet-sys | gdal-src efm32gg-pac ffmpeg4-sys efm32gg12b-pac re_web_viewer_server |
Crate total bandwidth (GB)
Amount of data downloaded as a compressed tarball × number of downloads per month.
Categories
Number of crates in each category. The area is proportional to the number of distinct crate owners publishing in each category. Colors are only for decoration.
Ecosystem
Number of crates that have each of the alternatives in their dependencies. More popular doesn't mean better. These crates and categories were hand-picked.
| 50084 | 1593 | 589 | 340 |
| tokio | async-std | pollster | smol |
|---|
| 7524 | 4735 | 1331 | 599 | 574 | 162 | 49 | 20 |
| tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
|---|
| 7772 | 2573 | 1915 |
| rustls | native-tls | openssl |
|---|
| 2142 | 338 |
| git2 | gix |
|---|
| 73974 | 47287 | 542 |
| log | tracing | slog |
|---|
| 83202 | 46550 | 3528 | 3238 | 2123 | 2003 |
| thiserror | anyhow | quick-error | eyre | snafu | miette |
|---|
| 37817 | 1745 | 884 | 424 | 121 |
| clap | getopts | pico-args | argh | argparse |
|---|
| 1729 | 415 | 306 |
| pulldown-cmark | comrak | markdown |
|---|
| 24654 | 13146 | 235 |
| toml | toml_edit | basic-toml |
|---|
| 10639 | 6974 | 2936 | 1852 | 1559 | 185 |
| bincode | prost | rmp-serde | protobuf | ciborium | capnp |
|---|
| 78769 | 1218 | 545 | 71 | 29 |
| serde_json | json5 | simd-json | miniserde | tinyjson |
|---|
| 13928 | 7125 | 2673 | 899 | 275 | 25 |
| nom | pest | combine | peg | pom | lalrpop |
|---|
| 3943 | 2191 | 1373 | 478 | 99 | 32 | 24 |
| quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
|---|
| 12547 | 522 |
| tempfile | tempdir |
|---|
Rustc compatibility
Percentage of crates (in their current version) that can be compiled with a given Rust version. The data is based on sampling of cargo check and clippy::incompatible_msrv on Linux/aarch64. Excludes crates that never built (e.g. because they need nightly, or Windows, or unusual C dependencies).
These stats are best-case scenarios that assume use of a most-compatible Cargo.lock file. Fresh projects without a lockfile will be less compatible due to too-new transitive dependencies.
Compatibility weighed by crates' popularity is not a realistic representation of ecosystem-wide compatibility. Actual compatibility is always worse, because MSRV of projects is not an average of their dependencies MSRV, but entirely dependent on their least-compatible dependency.
All crates, including unmaintained ones
| Rustc | OK / No data / Broken deps / Incompatible |
|---|---|
| 1.94 | |
| 1.93 | |
| 1.92 | |
| 1.91 | |
| 1.90 | |
| 1.89 | |
| 1.88 | |
| 1.87 | |
| 1.86 | |
| 1.85 | |
| 1.84 | |
| 1.83 | |
| 1.82 | |
| 1.81 | |
| 1.80 | |
| 1.75 | |
| 1.70 | |
| 1.65 | |
| 1.60 | |
| 1.56 | |
| 1.55 | |
| 1.50 | |
| 1.45 | |
| 1.40 | |
| 1.35 | |
| 1.31 | |
| 1.30 |
4000 most recently updated crates
| Rustc | OK / No data / Broken deps / Incompatible |
|---|---|
| 1.94 | |
| 1.93 | |
| 1.92 | |
| 1.91 | |
| 1.90 | |
| 1.89 | |
| 1.88 | |
| 1.87 | |
| 1.86 | |
| 1.85 | |
| 1.84 | |
| 1.83 | |
| 1.82 | |
| 1.81 | |
| 1.80 | |
| 1.75 | |
| 1.70 | |
| 1.65 | |
| 1.60 | |
| 1.56 | |
| 1.55 | |
| 1.50 | |
| 1.45 | |
| 1.40 | |
| 1.35 | |
| 1.31 | |
| 1.30 |
Usage of Rust versions based on crates.io traffic
This is based on crates.io request log data from the last week. This is not limited to real users, and includes automated traffic like CI. 91% of requests were from stable (non-nightly) Rust versions. Less than 0.19% of requests came from Rust versions older than 1.59.
| This many crates.io requests… | 0% | 4% | 37% | 50% | 61% | 67% | 72% | 74% | 77% | 82% | 86% | 87% | 89% | 98% | 99% | 99.1% | 99.3% | 99.5% | 99.6% | 99.8% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| …use this stable version of Rust or newer | 1.96 | 1.95+ | 1.94+ | 1.93+ | 1.92+ | 1.91+ | 1.90+ | 1.89+ | 1.88+ | 1.86+ | 1.85+ | 1.84+ | 1.81+ | 1.75+ | 1.70+ | 1.68+ | 1.67+ | 1.65+ | 1.62+ | 1.59+ |
| This many crates.io requests… | 3% | 4% | 4% | 7% | 7% | 7% | 7% | 7% | 8% | 8% | 8% | 8% | 8% | 8% | 9% | |||||
| …use this or newer nightly version of Rust | 1.96+ | 1.95+ | 1.94+ | 1.93+ | 1.92+ | 1.91+ | 1.90+ | 1.89+ | 1.88+ | 1.86+ | 1.85+ | 1.84+ | 1.81+ | 1.75+ | 1.70+ |