Growth of the crates.io registry
Daily downloads since Rust 1.0, 7-day average
Crate downloads are growing at a rate of 2.0× per year.
crates.io has served 223.0 million downloads in a single day, which is more than all downloads in the first 29 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.9× higher than during weekends (up from 2.8× a year before).
Number of users/teams owning a crate on crates.io
There are 42,712 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 163346 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 |
---|---|---|---|---|---|---|---|---|---|
27252
|
14755
|
14965
|
15805
|
12866
|
10388
|
8509
|
7381
|
6417
|
5290
|
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 | ≤10 years |
---|---|---|---|---|---|---|---|---|---|---|
45991
|
30145
|
10185
|
19287
|
13055
|
14983
|
8606 |
9161
|
3188 | 1632 | 2 |
ya yesqlr oxidate blackjack_commons boing-internals | static-self-derive console-codes epsilonz group-varint-offset-encoding cargo-vistree | af_path impc nasoone-lib packtool caffe2op-enforce | qst steel-engine ooproxy clap-utilities docufort | flowcrafter portman_client resources genesis-impl copo | num-digitize range_bounds_map signature_bls ops oxidux | atsam4n16b-pac libusbk-sys workflow-rpc keebrs oml-game | ms3d tuplex pause_console gd32f1x0-hal nodrop-union | vec_map rio_turtle ghost histo cargo-hack | chrono-humanize fletcher google-dfareporting2d8 block-utils base64-serde | capnpc flate2 |
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 | ≤10 years |
---|---|---|---|---|---|---|---|---|---|---|
18197
|
11381
|
12971
|
20010
|
29737
|
19715
|
14805
|
11385
|
12008
|
5985
|
41 |
tergo-tokenizer ic-stable-structures pyo3-object_store mustafa_art swc_ecma_compat_es2015 | tree-sitter-ursa v4-proto-rs-temp edrv-l3g4200d native-pkcs11 arrow-digest | gin-tonic docufort rflow nanoserde hdp-cli | text_maid impc screencapturekit cargo-gc-bin peon | autoken-rustc ambient_pipeline_types cargo-vistree id_factory progpool | clmm-cli clap-utilities pyportus group-varint-offset-encoding cat-loggr | qmc javavm cfx-types consul-rs-plus repl_framework | timbre usgs-espa-client mermaid-wasmbind c-closures-build supreme | libcalc sumlibrary hypermud ln azurlane | css lolapi gmagick vmx-just-a-test-001-maincrate libblockchain | epsilonz free typekit this-should-be-deleted rung_vm |
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 | ≤10 years |
---|---|---|---|---|---|---|---|---|---|---|
4478 | 5228 |
9045
|
17153
|
31703
|
23762
|
19344
|
16128
|
18004
|
11077
|
313 |
borrow boxed_error flowrs-tui VulkanLoaderRust isr-core | v4-proto-rs-temp pswatch stac-duckdb docid kur | cap_access stara googleapis-tonic-google-maps-unity bevy_blendy_cameras bogdan_hello_macro | synthetic spawn64 xwt-anchor moq-native flakery-client | basejmp fplus-cli kcheck partiql-ast-passes busstop | noosphere-cli air-script mwa_hyperdrive lapce-xi-rope smallerpdf | degauss cayenne time-humanize deno_bindgen_macro uvm_cli | rustpat wat-ast slyce animation prs | rustorm-cli imager hypermud wallet-app arg-derive | rshader vmx-just-a-test-001-maincrate doug idem nakacli | epsilonz free xsv iobuf portaudio |
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 |
---|---|---|---|---|---|---|---|---|
20270
|
61968
|
50731
|
8054 | 8793 | 2254 | 3434 | 697 | 34 |
zenoh-backend-sql ipkv sekai resx cnidarium | optional_take stara group-varint-offset-encoding setwallpaper cwe-api | tappet arrow-digest standalone-quote emap ffmpeg-sys | frame-system cross-socket rusty_express threescalers lares | sidh spark-connect-rs gaal marseille mysql_async | centerline ttf-noto-sans dayendar poro quilkin | tauri-app-vue-example molar_powersasa telraam-rs zinzen libnet-sys | my_tools rs1090 elfkit elikar_egui mwa_hyperdrive | ffmpeg4-sys wandio-sys kube-custom-resources-rs occt-sys musix |
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.
23869 | 1410 | 257 | 171 |
tokio | async-std | pollster | smol |
---|
2351 | 1239 | 931 | 457 | 416 | 142 | 36 | 21 |
tower | axum | actix-web | warp | rocket | poem | rouille | gotham |
---|
4017 | 1783 | 1432 |
rustls | native-tls | openssl |
---|
1207 | 127 |
git2 | gix |
---|
44934 | 21973 | 493 |
log | tracing | slog |
---|
37819 | 23139 | 2989 | 1740 | 1184 | 918 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
21578 | 1033 | 349 | 284 | 108 |
clap | getopts | pico-args | argh | argparse |
---|
852 | 161 | 131 |
pulldown-cmark | markdown | comrak |
---|
12109 | 7110 | 94 |
toml | toml_edit | basic-toml |
---|
6162 | 3498 | 1387 | 1336 | 519 | 117 |
bincode | prost | protobuf | rmp-serde | ciborium | capnp |
---|
38747 | 226 | 131 | 24 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8209 | 3848 | 1722 | 431 | 102 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
1815 | 1742 | 731 | 228 | 92 | 28 | 24 |
xml-rs | quick-xml | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
6295 | 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. 86% of requests were from stable (non-nightly) Rust versions. Less than 0.22% of requests came from Rust versions older than 1.63.
This many crates.io requests… | 0% | 5% | 43% | 68% | 76% | 86% | 88% | 90% | 92% | 95% | 96% | 98% | 99.2% | 99.3% | 99.6% | 99.7% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…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.73+ | 1.70+ | 1.67+ | 1.66+ | 1.65+ | 1.63+ |
This many crates.io requests… | 4% | 5% | 6% | 7% | 13% | 13% | 13% | 13% | 14% | |||||||
…use this or newer nightly version of Rust | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.77+ | 1.76+ |