Growth of the crates.io registry
Crate downloads are growing at a rate of 3.2× per year.
crates.io has served 1862.3 million downloads in a single day, which is more than all downloads in the first 55 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.0× higher than during weekends (down from 2.9× a year before).
There are 74,512 users or teams that have a crate on crates.io. The number of owners is growing at a rate of 1.4× per year.
Lib.rs has indexed 361667 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 |
|---|---|---|---|---|---|---|---|---|---|
|
43570
|
24689
|
26467
|
30794
|
25946
|
22243
|
19663
|
17364
|
15582
|
13507
|
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 | ≤12 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
97840
|
71312
|
29539
|
54879
|
24798
|
23787
|
13219 | 13752 | 6513 | 3197 | 709 |
| anvil-liquid-derive insectbox pbbot rap-protocol dreamwell-runtime | mind_sdk_lb modifier_macro decant-tui simple-digraph zsync | coffeebreak-cli vmrunner-test-harness runtara-protocol swr-gpui packler | mxr-config agent-id-cli revenant-cli adhammer-ldap bs62 | oceanpkg cider-cli tinycbor-derive mpdclient-sys ruipmi | sub-registrar lumesh hydrate sl-oblivious nu-stream | docsearch idalib symphonize sms-2dm rooting-forms | lance-test-macros unicode_names2_generator serde_magnus criterion-macro ic-stable-structures | chalk-recursive laze minijinja tls_codec_derive color-eyre | miniflux_api bolero-afl kg-js rustversion oca | libloading statrs crowbook gluon_language-server fern |
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 | ≤12 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
67902
|
39294
|
42086
|
42998
|
38906
|
27488
|
24395
|
16668
|
23780
|
13461
|
2567 |
| mg24-hal animsmith-core blast-search dione proton-drive-rs | valkey-module-macros only-lsp lemurclaw-ansi-to-tui awsim-s3 icao-wgs84 | coffeebreak-cli swc_experimental_ecma_ast_compat minedmap-nbt decant-tui healthpoint-mcp | ump-server kojin-core coil-cache autolua murk-propagators | stylus xclipboard boost_logic diesel-timescaledb ledger-sdk-device-base | serai-processor-ethereum-contracts ladybug pjrt-sys components-arena-traits stochastic-abm | range-traits minigrep_tupelo csparse21 passdata fox-dotfile | replication ntfy-types criterion-macro minigrephgz fern-protocol-reql | diem-json-rpc-types metriki-tower dbvm port-finance-staking libsecp256k1-core | guessing_game_test12424 timetable aesir twitch-scraper xio_instructionset | telnetify asn1-cereal nss-sys conduit-utils sexpr |
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 | ≤12 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
24364
|
31622
|
45379
|
50028
|
41642
|
33068
|
30132
|
22328
|
33578
|
21734
|
5670 |
| ferryman-edge-core codoseo-core rustfs-object-capacity kcode-k1-access-state mdrv-ds-core | wovyr-ui email-attachment rustmarrow pheme omp-llm-transport | colorful-cli pi-gen fp-types proton-drive-rs of_execution_adapters | xplist ciab-db stylus-debug sqry-lang-pulumi aws-smithy-http-client-reqwest | logforth-layout-logfmt diesel-timescaledb flix-fs rusqlite-struct-derive funpay-client | datagram-pinger r-idcard drcode musica-app mtu | univec salvo-cli atop carton-runner-packager molar_xdrfile | axum-ws-rooms justify-string rust-sudoku flax-derive x-bow | node-discover askar-bbs fenris-geometry minijinja wasmtime-types | hello_extern web_server itsybitsy_m4 vfio-bindings libkrb5-sys | telnetify md4 chrono-tz ratel synstructure |
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 | ≤38MB |
|---|---|---|---|---|---|---|---|---|
|
27111
|
90567
|
135351
|
34555
|
34507
|
6792 | 9007 | 1615 | 40 |
| limon-client umbrae-dlmm-sdk hello_macro pbbot simple-digraph | yog-config rusqlite-struct-derive unc-abi-client-impl volcengine rename | todoist-rs thalassa crcnt_rbac google-geo-type droid-wrap-utils | locode-engine justsftp vec64 afterburner-core npsimd | coursers-core rlox-core scalop glulxe-sys cf-gears-file-parser | esp32s2 drasi-reaction-dashboard curve25519-dalek-fiat alma apiplant-assets | alex-proxy snarkos system-theme babelfix-repo osx-clnr | lme-rs perch bevy_isomesh kdi cyclonedds-src | musix librclone-sys wandio-sys efm32gg11b-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.
| 80900 | 1651 | 1544 | 511 |
| tokio | async-std | pollster | smol |
|---|
| 23195 | 9911 | 1558 | 612 | 582 | 201 | 47 | 19 |
| tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
|---|
| 19355 | 3028 | 2309 |
| rustls | native-tls | openssl |
|---|
| 2722 | 761 |
| git2 | gix |
|---|
| 111400 | 82044 | 567 |
| log | tracing | slog |
|---|
| 141887 | 69739 | 5607 | 4036 | 3323 | 2972 |
| thiserror | anyhow | quick-error | eyre | miette | snafu |
|---|
| 52486 | 2468 | 2198 | 452 | 138 |
| clap | getopts | pico-args | argh | argparse |
|---|
| 3531 | 748 | 532 |
| pulldown-cmark | comrak | markdown |
|---|
| 41682 | 20897 | 555 |
| toml | toml_edit | basic-toml |
|---|
| 13390 | 10955 | 4248 | 3172 | 2354 | 232 |
| bincode | prost | rmp-serde | ciborium | protobuf | capnp |
|---|
| 134450 | 1742 | 808 | 84 | 41 |
| serde_json | json5 | simd-json | miniserde | tinyjson |
|---|
| 20265 | 8359 | 3663 | 1355 | 538 | 27 |
| nom | pest | combine | peg | pom | lalrpop |
|---|
| 8355 | 2398 | 2014 | 940 | 125 | 41 | 25 |
| quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
|---|
| 21577 | 507 |
| 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.99 | |
| 1.98 | |
| 1.97 | |
| 1.96 | |
| 1.95 | |
| 1.94 | |
| 1.93 | |
| 1.92 | |
| 1.91 | |
| 1.90 | |
| 1.89 | |
| 1.88 | |
| 1.87 | |
| 1.86 | |
| 1.85 | |
| 1.84 | |
| 1.83 | |
| 1.82 | |
| 1.81 | |
| 1.80 | |
| 1.75 | |
| 1.70 | |
| 1.65 | |
| 1.60 | |
| 1.56 | |
| 1.55 | |
| 1.50 | |
| 1.45 | |
| 1.40 | |
| 1.35 | |
| 1.31 | |
| 1.30 |
4000 most recently updated crates
| Rustc | OK / No data / Broken deps / Incompatible |
|---|---|
| 1.99 | |
| 1.98 | |
| 1.97 | |
| 1.96 | |
| 1.95 | |
| 1.94 | |
| 1.93 | |
| 1.92 | |
| 1.91 | |
| 1.90 | |
| 1.89 | |
| 1.88 | |
| 1.87 | |
| 1.86 | |
| 1.85 | |
| 1.84 | |
| 1.83 | |
| 1.82 | |
| 1.81 | |
| 1.80 | |
| 1.75 | |
| 1.70 | |
| 1.65 | |
| 1.60 | |
| 1.56 | |
| 1.55 | |
| 1.50 | |
| 1.45 | |
| 1.40 | |
| 1.35 | |
| 1.31 | |
| 1.30 |
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. 88% of requests were from stable (non-nightly) Rust versions. Less than 0.16% of requests came from Rust versions older than 1.65.
| This many crates.io requests… | 0% | 3% | 37% | 59% | 67% | 73% | 80% | 83% | 86% | 89% | 91% | 93% | 95% | 96% | 97% | 98% | 99.2% | 99.3% | 99.6% | 99.8% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| …use this stable version of Rust or newer | 1.101 | 1.100+ | 1.99+ | 1.98+ | 1.97+ | 1.96+ | 1.95+ | 1.94+ | 1.93+ | 1.92+ | 1.91+ | 1.89+ | 1.88+ | 1.86+ | 1.85+ | 1.82+ | 1.75+ | 1.72+ | 1.70+ | 1.65+ |
| This many crates.io requests… | 3% | 4% | 10% | 10% | 11% | 11% | 11% | 12% | ||||||||||||
| …use this or newer nightly version of Rust | 1.101+ | 1.100+ | 1.99+ | 1.98+ | 1.97+ | 1.96+ | 1.95+ | 1.94+ |