Growth of the crates.io registry
Daily downloads since Rust 1.0, 7-day average
Crate downloads are growing at a rate of 2.1× per year.
crates.io has served 230.4 million downloads in a single day, which is more than all downloads in the first 30 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.8× higher than during weekends (up from 2.8× a year before).
Number of users/teams owning a crate on crates.io
There are 41,961 users or teams that have a crate on crates.io. The number of owners is growing at a rate of 1.2× per year.
Lib.rs has indexed 161578 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 |
---|---|---|---|---|---|---|---|---|---|
28104
|
14564
|
14727
|
15551
|
12648
|
10146
|
8363
|
7218
|
6267
|
5192 |
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 |
---|---|---|---|---|---|---|---|---|---|
46510
|
29445
|
9867
|
19109
|
12861
|
14680
|
8448 |
8980
|
3102 | 1589 |
boing-internals ya yesqlr oxidate blackjack_commons | epsilonz cargo-vistree console-codes static-self-derive group-varint-offset-encoding | ggez_tools dreck markdown_converter nova-r8 nasoone-lib | ruuvitag-upload bitcoin-scriptpubkeyman bon qst candid_client | lapce-xi-rope genesis-impl edcert-letter resources encodings | afetch-colored fuel-gql-client bevy_oddio git-bitmap macarunes | yelp-fusion-rs oml-game keebrs libusbk-sys atsam4n16b-pac | quire ms3d nodrop-union termprogress castaway | cargo-trim ghost trie-rs arabic_reshaper obliviate | base64-serde subtle block-utils google-bigquerydatatransfer1 fletcher |
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 |
---|---|---|---|---|---|---|---|---|---|
17741
|
11106
|
12828
|
20033
|
29908
|
19136
|
14799
|
11482
|
11761
|
5797
|
setwallpaper google-displayvideo1 tower-sessions-surrealdb-store slint-macros native-pkcs11 | cwe-api repocat wayland-sys lhtlp shizen-macros | serde_at rustygeard bevy_synthizer run-tool test-format | text_maid finput lbl-python pyluwen huawei-cloud-api-definitions-IEF | diesel-streamer jstz_core italo-api wei-build libcachebust | filewatch study13 const-slice nft-server task-executor | mri oxidate winres wasmedge-runtime-rs fluvio-protocol-core | raqote-display drogue-bme680 imex an-view stdrename | nodrop-union java-desc auto_enumerate chai flutter-engine | plugger codeviz_common md5sum segment_analytics tokio-by-hand |
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 |
---|---|---|---|---|---|---|---|---|---|
4100 | 5850 |
8315
|
17243
|
31772
|
23342
|
19155
|
16117
|
17706
|
10991
|
kawala pmse-win planetary yesqlr tuas_boussinesq_solver | argfetch lhtlp docid sqlr stac-duckdb | say-hello-tobialbertino tramex-tools globescraper solana-sbf-rust-call-depth kith | sandwich-rs titz wrk koto_regex fieldless_enum_tools | biome_js_transform wei-build presenterm wender swc_ecma_compat_es2015 | nft-server az-vminfo rama zenoh-link-tcp study13 | win_ocr_bindings baselinker wasmpng vizia qcs | wimp drogue-bme680 animation sprs_suitesparse_camd raqote-display | oasis-core static_test displaydoc libcalc war-cli | vmx-just-a-test-001-maincrate content-security-policy tokio-by-hand mar xmc4700 |
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.
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 | ≤41MB |
---|---|---|---|---|---|---|---|---|
19441
|
56334
|
47849
|
7626 | 8294 | 2067 | 3196 | 648 | 32 |
cnidarium aeron-archive-client ipkv peon chainlink_api | kelk-env tiny_update_notifier json-mel console-codes scotch-host | kcheck shunkakinoki lhtlp tembo-telemetry ffmpeg-sys | lodepng libwebnovel rusty-snake vbscript gringron_api | sidh cargo-compete rbspy-oncpu solana-rpc zk_evm_abstractions | gaviota-sys poro localghost tlsh2 azure_mgmt_cosmosdb | lingua-indonesian-language-model gled dicom_dictionary_parser nf-rated delta_2a_lidar | f256_pow2_div_pow5_lut mwa_hyperdrive bindet icu_datagen just-latex | bpe-tokenizer rusty_v8 efm32lg-pac efm32gg12b-pac deno_cli_lib_windmill |
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.
23221 | 1378 | 257 | 170 |
tokio | async-std | pollster | smol |
---|
2250 | 1191 | 919 | 449 | 410 | 139 | 35 | 21 |
tower | axum | actix-web | warp | rocket | poem | rouille | gotham |
---|
3918 | 1756 | 1416 |
rustls | native-tls | openssl |
---|
1179 | 126 |
git2 | gix |
---|
44016 | 21281 | 489 |
log | tracing | slog |
---|
36685 | 22483 | 2964 | 1690 | 1139 | 901 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
21173 | 1017 | 339 | 277 | 107 |
clap | getopts | pico-args | argh | argparse |
---|
838 | 156 | 125 |
pulldown-cmark | markdown | comrak |
---|
11817 | 6867 | 91 |
toml | toml_edit | basic-toml |
---|
6054 | 3376 | 1373 | 1295 | 485 | 115 |
bincode | prost | protobuf | rmp-serde | ciborium | capnp |
---|
37882 | 219 | 114 | 24 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8004 | 3720 | 1677 | 404 | 98 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
1806 | 1705 | 725 | 225 | 92 | 28 | 24 |
xml-rs | quick-xml | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
6118 | 465 |
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.82 | |
1.81 | |
1.80 | |
1.79 | |
1.78 | |
1.77 | |
1.76 | |
1.75 | |
1.74 | |
1.73 | |
1.72 | |
1.71 | |
1.70 | |
1.69 | |
1.68 | |
1.67 | |
1.66 | |
1.65 | |
1.64 | |
1.63 | |
1.62 | |
1.61 | |
1.60 | |
1.56 | |
1.55 | |
1.50 | |
1.45 | |
1.40 | |
1.35 | |
1.31 | |
1.30 | |
1.25 |
4000 most recently updated crates
Rustc | OK / No data / Broken deps / Incompatible |
---|---|
1.82 | |
1.81 | |
1.80 | |
1.79 | |
1.78 | |
1.77 | |
1.76 | |
1.75 | |
1.74 | |
1.73 | |
1.72 | |
1.71 | |
1.70 | |
1.69 | |
1.68 | |
1.67 | |
1.66 | |
1.65 | |
1.64 | |
1.63 | |
1.62 | |
1.61 | |
1.60 | |
1.56 | |
1.55 | |
1.50 | |
1.45 | |
1.40 | |
1.35 | |
1.31 | |
1.30 | |
1.25 |
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. 90% of requests were from stable (non-nightly) Rust versions. Less than 0.2% of requests came from Rust versions older than 1.63.
This many crates.io requests… | 0% | 3% | 17% | 69% | 78% | 84% | 88% | 90% | 91% | 94% | 95% | 96% | 97% | 99.3% | 99.4% | 99.7% | 99.8% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…use this stable version of Rust or newer | 1.84 | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.77+ | 1.76+ | 1.75+ | 1.74+ | 1.72+ | 1.70+ | 1.67+ | 1.66+ | 1.65+ | 1.63+ |
This many crates.io requests… | 3% | 4% | 5% | 6% | 9% | 9% | 10% | ||||||||||
…use this or newer nightly version of Rust | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ |