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 250.4 million downloads in a single day, which is more than all downloads in the first 31 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.7× a year before).
Number of users/teams owning a crate on crates.io
There are 44,105 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 168778 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 |
---|---|---|---|---|---|---|---|---|---|
27877
|
15186
|
15358
|
16345
|
13290
|
10769
|
8843
|
7643
|
6662
|
5501
|
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 |
---|---|---|---|---|---|---|---|---|---|---|
47304
|
31254
|
10516
|
19991
|
13408
|
15574
|
8859 |
9516
|
3322 | 1695 | 55 |
boing-internals oxidate yesqlr blackjack_commons ya | group-varint-offset-encoding static-self-derive pubky-app-specs console-codes cargo-vistree | markdown_converter ggez_tools dreck atm0s-sdn-multiaddr af_path | hwt n32g4xx-hal googleapis-tonic-google-cloud-documentai-v1beta1 nbformat bitcoin-scriptpubkeyman | tailwind-parse-macro rat-theme portman_client rustdns encodings | puzzlefs apisdk schedule_recv settings-schema signature_bls | stack-queue symphonia-codec-alac atsam4n16b-pac native-pkcs11 tmpl | asap_deps_keyserver ms3d sc-peerset termprogress degeneric-macros | arabic_reshaper ejdb rstack osmptparser rust-fsm-dsl | open_ai sha2-asm google-bigquerydatatransfer1 cfb gstreamer-net-sys | capnpc caseless fern petgraph bitflags |
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 |
---|---|---|---|---|---|---|---|---|---|---|
17024
|
13480
|
13340
|
20232
|
30421
|
20588
|
15013
|
12037
|
12840
|
6378
|
141 |
linkcheck2 slint-macros swc_ecma_compat_es2015 core-test-3 tulpje-handler | huawei-cloud-api-definitions-iDMEClassicAPI floretta durabletask-proto mwc_store z_osmf | googleapis-tonic-google-maps-unity moleculer modio-logger-db twilly clade | dotnet35_rand_rs buss-protocol rustygeard mahogany run-tool | flowcrafter slowcat tembo-telemetry rumqttd sim | async-i3ipc castle_tokenizer tugger ac-ffmpeg nasoone-lib | engula-kernel rues iweb sol_rng tree-sitter-traversal | serde-key-value-vec-map mark_last cassiopeia scal shunkakinoki | rfm9x brash bufferpool divisors wasi-rng | manenko-ds winutil tokio-bits char_stream drdns | promise xxhash rust-xmlrpc groove phf_mac |
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 |
---|---|---|---|---|---|---|---|---|---|---|
4155 | 6007 |
9218
|
17168
|
32404
|
24730
|
19606
|
16870
|
19088
|
11532
|
716 |
default-vec2 ankh easing-fixed stealth-gas-cli pest_railroad | zensical revm-trace minaws katex-v8 pyo3-object_store | docid pswatch iced_anim_derive crankshaft setwallpaper | justshell say-hello-tobialbertino rflow typeful hc_r2d2_sqlite | coretime-westend-runtime dotnet35_rand_rs apisdk nova-r8 rockbox | mythoji ilog bevy_simple_2d_outline turn-server cargo-codspeed | ledger-utils sol_rng bevy_combat libcnb-data arrow-digest | yaxpeax-superh pivot scal crm bondi | cxmr-api-clients rfm9x ilmenite serde_iter email-extractor | wasm-rust-utils beginner_tools libzfs libimaghabit hello_cargo | advapi32-sys static_slice geo maybe_utf8 pad |
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 |
---|---|---|---|---|---|---|---|---|
20696
|
63739
|
52875
|
8385 | 9147 | 2326 | 3562 | 729 | 35 |
blackjack_commons sekai redispatch chainlink_api resx | stopwatch static-self-derive uh boxed_error polyhorn-test | pyo3-object_store clippit easy-qjs tembo-telemetry oxidate | r-tftpd lares quire google-translate3 bevy_mod_ui_independent_text | cargo-liner huawei-cloud-api-definitions-iDMEClassicAPI marseille cargo-compete node-launchpad | curve25519-dalek-ng s2n-tls-sys azure_mgmt_cosmosdb localghost atsame70n19 | guessing_game_1732891 nf-rated openapitor mcup luajit-src | consalifold boring-sys mwa_hyperdrive schema_generator domlist | efm32gg12b-pac efm32gg-pac bpe-tokenizer wolfssl-sys linux-sys |
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.
24986 | 1446 | 272 | 175 |
tokio | async-std | pollster | smol |
---|
2519 | 1325 | 960 | 462 | 433 | 141 | 39 | 21 |
tower | axum | actix-web | warp | rocket | poem | rouille | gotham |
---|
4164 | 1829 | 1486 |
rustls | native-tls | openssl |
---|
1234 | 136 |
git2 | gix |
---|
46541 | 23127 | 501 |
log | tracing | slog |
---|
39531 | 24104 | 3000 | 1865 | 1249 | 946 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
22370 | 1057 | 367 | 299 | 110 |
clap | getopts | pico-args | argh | argparse |
---|
883 | 167 | 143 |
pulldown-cmark | markdown | comrak |
---|
12549 | 7638 | 105 |
toml | toml_edit | basic-toml |
---|
6394 | 3713 | 1546 | 1405 | 547 | 118 |
bincode | prost | rmp-serde | protobuf | ciborium | capnp |
---|
40444 | 249 | 179 | 30 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8352 | 3984 | 1769 | 471 | 106 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
1826 | 1821 | 770 | 241 | 93 | 28 | 24 |
quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
6631 | 468 |
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.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.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. 87% of requests were from stable (non-nightly) Rust versions. Less than 0.27% of requests came from Rust versions older than 1.65.
This many crates.io requests… | 0% | 5% | 15% | 47% | 53% | 77% | 84% | 90% | 92% | 93% | 94% | 96% | 97% | 98% | 99% | 99.1% | 99.4% | 99.7% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…use this stable version of Rust or newer | 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.72+ | 1.70+ | 1.69+ | 1.68+ | 1.67+ | 1.65+ |
This many crates.io requests… | 5% | 6% | 7% | 8% | 9% | 10% | 13% | |||||||||||
…use this or newer nightly version of Rust | 1.86+ | 1.85+ | 1.84+ | 1.83+ | 1.82+ | 1.81+ | 1.80+ |