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 244.0 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 3.0× higher than during weekends (up from 2.8× a year before).
Number of users/teams owning a crate on crates.io
There are 43,506 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 166500 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 |
---|---|---|---|---|---|---|---|---|---|
27571
|
15009
|
15200
|
16129
|
13101
|
10623
|
8716
|
7527
|
6574
|
5404
|
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 |
---|---|---|---|---|---|---|---|---|---|---|
46704
|
30816
|
10462
|
19650
|
13257
|
15351
|
8726 |
9395
|
3269 | 1685 | 22 |
oxidate boing-internals yesqlr blackjack_commons ya | console-codes pubky-app-specs static-self-derive group-varint-offset-encoding cargo-vistree | ggez_tools indentasy impc reddit-fs dreck | ruuvitag-upload proc_include_dir_as_map ceres-derive cosmic-cli yobot | portman_client resources genesis-impl basejmp pjs-rs | oxidux fuel-gql-client pyo3-pack guswynn-test-dep num-digitize | kdump yelp-fusion-rs cfonts oml-game deno_bindgen_macro | gogo pause_console quire twiddle vertigo-macro | css-color bytelines rust-fsm-dsl trie-rs ntcip | block-utils e310x dynamic_reload google-bigquerydatatransfer1 antikoerper | capnpc fern xml-rs bloomfilter 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 |
---|---|---|---|---|---|---|---|---|---|---|
17577
|
13103
|
12736
|
20150
|
30204
|
20135
|
15102
|
11585
|
12426
|
6234
|
85 |
cnidarium n32g4xx-hal tower-sessions-surrealdb-store typos-cli polars-rows-iter-derive | pyo3-object_store mathcat linkcheck2 google-displayvideo1 googleapis-tonic-google-maps-unity | cargo-codspeed workflow-rpc-macros sqlr evalr lhtlp | koto_regex AlankuoRust ipld-dagpb busstop spawn64 | hexfloat2 proc_include_dir_as_map rsn-fmt tag_nominatim mldkyt-uwurandom-rs | cosmic-cli kakasi rustiny_fixed_point lunatic-db fields-iter-macros | uris plonk-pallet-rpc rodio-xm hnapi pakr-assert-size | ref_clone drone-tisl-map-svd pi_ir_remote test-impl tts_winrt_bindings | dotecnf socket-priority batch_resolve_cli ghcl myls | intercom-utils bowling liner noise_search_deps_rocksdb nakacli | char_set rusql integer_set pyltime msgpack |
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 |
---|---|---|---|---|---|---|---|---|---|---|
4472 | 5674 |
9128
|
17087
|
32180
|
24302
|
19612
|
16494
|
18532
|
11305
|
551 |
revm-trace examination core-test-3 zensical stuckliste-cli | linkcheck2 tangu-cli bitnet-cpp-sys intervalues_pyrust minaws | evalr usb-mc treesitter_kind_collector field-visibility protex | zng-ext-hot-reload trident-test ark-ff-asm-zypher steel-engine gin-tonic | rusty_utils sisyphus-tasks structified_enum rsiot-component-core minotari_mining_helper_ffi | c-at-e-file-server movey-core lunatic-db ilog odra-casper-codegen | pylon-utils miden-verifier devcleaner time-humanize simple-ll | rexl sofa-sys polyhorn-test obsidian-export shyfyr | budget duplexify myls gt-graph-path howlong | shmemfdrs drdns riscv-rt relexer-derive foursquare | fuse fern_macros racc netaddr char_set |
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 |
---|---|---|---|---|---|---|---|---|---|
20824
|
7474
|
7700
|
5965
|
747 | 164 | 76 | 57 | 18 | 24 |
fd shanesveller schacon canadaduane ernesto-jimenez | zacheryph raggi robey deontologician khyperia | bjc kivikakk joshrotenberg oleganza marcoow | ggriffiniii swaits srid walkah romanz | yvan-sraka filmil poljar legoktm nbari labra jjl chifflier | dylanmckay wilsonzlin Berrysoft LPGhatguy refcell tyleo ForsakenHarmony rust-embedded | robjtede fafhrd91 gkgoat1 denobot sudo-shashank ryo33 Michael-F-Bryan bbqsrc | mikevoronov uutils matthiasbeyer unicode-org rivy rust-lang yayanyang folex | Traverse-Research-CI-runner mingyang91 Manishearth vpetrigo sunfishcode howardwu strake kayabaNerve | aptos-crates Azure newpavlov kdy1 vkill dtolnay oovm sdroege |
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 |
---|---|---|---|---|---|---|---|---|
20516
|
63095
|
51926
|
8245 | 9008 | 2288 | 3510 | 715 | 34 |
zenoh-backend-sql resx redispatch aeron-archive-client chainlink_api | optional_take stara group-varint-offset-encoding yobot wallet-app | cxx-clang-auto print_bytes standalone-quote nova-r8 arrow-digest | threescalers json5format lares vbscript derive-adhoc | threepm solana-stake-o-matic rbspy-oncpu mysql_async k8s-crds-cilium | sui-crypto botapi gaviota-sys curve25519-dalek-organism localghost | multiboot2-common cfn easy-alias luajit-src lingua-indonesian-language-model | webots-bindings elfkit ratatui-image my_tools clfft | wolfssl-sys bpe-tokenizer esp-wifi-sys efm32wg-pac efm32gg12b-pac |
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.
24531 | 1435 | 261 | 173 |
tokio | async-std | pollster | smol |
---|
2439 | 1292 | 948 | 460 | 432 | 141 | 38 | 21 |
tower | axum | actix-web | warp | rocket | poem | rouille | gotham |
---|
4109 | 1814 | 1460 |
rustls | native-tls | openssl |
---|
1224 | 132 |
git2 | gix |
---|
45928 | 22682 | 500 |
log | tracing | slog |
---|
38811 | 23676 | 2996 | 1820 | 1218 | 924 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
22073 | 1049 | 357 | 289 | 108 |
clap | getopts | pico-args | argh | argparse |
---|
874 | 166 | 142 |
pulldown-cmark | markdown | comrak |
---|
12396 | 7475 | 100 |
toml | toml_edit | basic-toml |
---|
6311 | 3629 | 1548 | 1394 | 532 | 118 |
bincode | prost | rmp-serde | protobuf | ciborium | capnp |
---|
39728 | 243 | 176 | 25 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8451 | 3935 | 1750 | 462 | 106 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
1815 | 1782 | 756 | 235 | 93 | 28 | 24 |
xml-rs | quick-xml | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
6497 | 466 |
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.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.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. 87% of requests were from stable (non-nightly) Rust versions. Less than 0.29% of requests came from Rust versions older than 1.65.
This many crates.io requests… | 0% | 7% | 44% | 52% | 74% | 82% | 89% | 90% | 93% | 95% | 96% | 98% | 99% | 99.1% | 99.3% | 99.7% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…use this stable version of Rust or newer | 1.85 | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.76+ | 1.75+ | 1.73+ | 1.70+ | 1.69+ | 1.68+ | 1.67+ | 1.65+ |
This many crates.io requests… | 6% | 7% | 7% | 9% | 9% | 12% | 12% | 12% | 13% | |||||||
…use this or newer nightly version of Rust | 1.85+ | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ | 1.79+ | 1.78+ | 1.76+ |