Growth of the crates.io registry
Crate downloads are growing at a rate of 2.1× per year.
crates.io has served 410.7 million downloads in a single day, which is more than all downloads in the first 37 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 3.0× higher than during weekends (up from 2.8× a year before).
There are 46,717 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 179961 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 |
---|---|---|---|---|---|---|---|---|---|
29211
|
15766
|
16122
|
17320
|
14183
|
11474
|
9879
|
8298
|
7110
|
5942
|
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 |
---|---|---|---|---|---|---|---|---|---|---|
50346
|
33325
|
11548
|
20998
|
14492
|
16629
|
9479 |
10154
|
3752 | 1837 | 130 |
aws-unlock openvm-rv32-adapters exif-rs yttrium_std_database_exists insectbox | mind_sdk_lb hashirama simple-digraph rocket_anyhow modifier_macro | dir_contents grow_libsql tc-consensus-pow diesel_cockroach gabi | screeps-pathfinding kmail type_hash_macros bs62 rglw | yuexclusive_foo engula ubi-cli pcomb signal-gen-cjds66-lib | lwk_ledger poggers-derive theban_interval_tree iceoryx2-pal-concurrency-sync esdm-sys | humble-cli url-parse rsass-macros actix-postgres htmltoadf | pi_slotmap_tree paris criterion-macro i-slint-compiler marine | flatc-rust comfy-table cd sc-consensus-babe-rpc near-sdk | ascon vegas-lattice dilithium block-padding libpulse-glib-binding | fern smallvec caseless lodepng rss |
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 |
---|---|---|---|---|---|---|---|---|---|---|
20375
|
12964
|
15073
|
19510
|
30678
|
23483
|
15325
|
13179
|
14454
|
7274
|
375 |
screeps-game-utils koto_geometry workspacer-add-new-crate-to-workspace dobby-wrapper write_mode | zsync zeusd markovish somose rust-crates-mcnwr | bevyhub_core lightweight-mmap async_nursery iceoryx2-pal-concurrency-sync build-instructions | cargo-rpmstatus git2-hooks ncomm-utils whiskers-widgets harris_minigrep | mc-sgx-tstdc-sys any_all_workaround memcrab-cache bashrand fqn-estimator | lp-types dbusmenu-gtk3-sys rsam caffe2op-logit cargo-qaf | litebin macro_pub proc-lock-api fs0 polyrhythm | pandacan grpc-compiler game_state_machine spartan-codec wraptest | twiml minigrep_yibozhuang wagyu opensc-sys pathfinder_renderer | unwalk robin-derives snaptest simple-signal maildir-pack | appcore se_rs_ial text_writer google-cloudsearch1 mraa |
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 |
---|---|---|---|---|---|---|---|---|---|---|
5676 |
6651
|
9366
|
17219
|
32412
|
27731
|
20040
|
18316
|
21170
|
12709
|
1400 |
gtoml ferrishot_iced_renderer aliyah cacheguard refman | wingl azure_resourcemanager_chaos maplibre_native mind_sdk_lb somose | ant-libp2p-upnp expression-parser tracing-proc-macros-ink ant-service-management ferogram-macros | harris_minigrep rglw electrologica pjrt-sys libwfa2 | magika-cli untwine_macros tree-sitter-rstml clock-bound-shm rusty_dl | ndarray-slice krab wasmcloud-provider-httpserver springtime-di-derive disk | ddc-enhanced-rs atsamv71j20 ragged-buffer hubpack_derive irv-traits | glslt_cli naphtha spartan-codec etwin_dinoparc_client evdev-rs-tokio | console_engine clap_derive-v3 rsyesql ink_env capsule | squark-macros vips bytes32 libpebble robin-derives | appcore freeimage error_def se_rs_ial multimap |
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 |
---|---|---|---|---|---|---|---|---|
21281
|
65053
|
59501
|
9677 | 9996 | 2515 | 3851 | 777 | 39 |
zigbee2mqtt_types_vendor_zen rust-ggm-test feat pbbot http-field | jams-proto io_tee volcengine tumbleweed papito_codegen | aws-unlock simple-stream quarantine smol-macros valkey-module-macros | npsimd rgx milf dtt rmcp | pthash acceptxmr kube-client gaze nam-reddsa | font-awesome-as-a-crate proxyboi typer kn-cuda-eval miv-editor | guessing_game_1732891 rosesong ch58x-hal telraam-rs signalk-multidisplay | chadgpt rod silly-png variantkey run-clang-format | efm32wg-pac wandio-sys difftastic librclone-sys 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.
27654 | 1467 | 305 | 205 |
tokio | async-std | pollster | smol |
---|
2932 | 1548 | 1025 | 503 | 481 | 149 | 39 | 21 |
tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
---|
4819 | 1939 | 1515 |
rustls | native-tls | openssl |
---|
1323 | 149 |
git2 | gix |
---|
50381 | 25898 | 505 |
log | tracing | slog |
---|
44343 | 26251 | 2892 | 2141 | 1345 | 1036 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
24096 | 1102 | 416 | 328 | 113 |
clap | getopts | pico-args | argh | argparse |
---|
959 | 177 | 145 |
pulldown-cmark | markdown | comrak |
---|
13780 | 8741 | 142 |
toml | toml_edit | basic-toml |
---|
6955 | 4151 | 1502 | 1478 | 670 | 123 |
bincode | prost | rmp-serde | protobuf | ciborium | capnp |
---|
44532 | 346 | 212 | 31 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8993 | 4399 | 2114 | 512 | 124 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
2005 | 1931 | 871 | 268 | 94 | 29 | 24 |
quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
7357 | 478 |
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.86 | |
1.85 | |
1.84 | |
1.83 | |
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.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.86 | |
1.85 | |
1.84 | |
1.83 | |
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.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. 89% of requests were from stable (non-nightly) Rust versions. Less than 0.22% of requests came from Rust versions older than 1.62.
This many crates.io requests… | 0% | 4% | 34% | 56% | 68% | 71% | 73% | 90% | 92% | 93% | 94% | 95% | 96% | 98% | 99% | 99.4% | 99.6% | 99.7% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…use this stable version of Rust or newer | 1.88 | 1.87+ | 1.86+ | 1.85+ | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.76+ | 1.75+ | 1.70+ | 1.69+ | 1.67+ | 1.65+ | 1.62+ |
This many crates.io requests… | 3% | 4% | 5% | 9% | 9% | 10% | 10% | 10% | 10% | 10% | 10% | 11% | ||||||
…use this or newer nightly version of Rust | 1.88+ | 1.87+ | 1.86+ | 1.85+ | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.76+ |