Growth of the crates.io registry
Crate downloads are growing at a rate of 2.3× per year.
crates.io has served 759.0 million downloads in a single day, which is more than all downloads in the first 45 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.7× higher than during weekends (down from 2.9× a year before).
There are 58,795 users or teams that have a crate on crates.io. The number of owners is growing at a rate of 1.3× per year.
Lib.rs has indexed 233631 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 |
|---|---|---|---|---|---|---|---|---|---|
|
33471
|
18408
|
18995
|
21415
|
17749
|
14830
|
12971
|
11090
|
9817
|
8324
|
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 | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
66449
|
46471
|
15602
|
26967
|
17823
|
20422
|
11504 | 12042 | 5138 | 2507 | 464 |
| insectbox openvm-rv32-adapters anvil-liquid-derive cmw pbbot | simple-digraph zsync tremor mind_sdk_lb modifier_macro | avin_utils packler tinycbor-derive vpb zigbee2mqtt_types_vendor_zen | petstore arct-tui disposition_ir_model npsimd rustdoc-json-stable | signal-gen-cjds66-lib maplibre_native engula jupyter tw_merge_variants | statum rhaki-cw-plus argentum_rest_infrastructure cargo-like-utils stack_epic_p2p | salvo-cli aldrin-macros iceoryx2-cal rooting-forms into_response_derive | re_format sc-rpc-spec-v2 sdl3-sys uniffi_testing vecmap-rs | laze flatc-rust good_lp koto_json pshovr | stm32l0 chrono-humanize hyper-multipart-rfc7578 libpulse-simple-binding fallible-iterator | libloading crowbook blip_buf fern djangohashers |
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 | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
34032
|
19958
|
18114
|
25200
|
33931
|
27268
|
20280
|
14609
|
20067
|
10534
|
1396 |
| swc_experimental_ecma_ast_compat bevy_woff send_cells dioxus-cloudflare raclettui | rustlite kitmap vello_sparse_shaders data-nasdaq tlq-fhir-format | conway-gol-rs expr-solver-bin myer insight-line ink_env | moosicbox_search portmatching ctnapi spicy-uuid-gen unbinder | nipdf-render lure tychoos nvy celcius | tiny-merkle smashnet audiobookroom-client payment_strings serai-orchestrator | libphantomfs boing-internals gfx_64 fenris-geometry hellosamp | cess-sp-porep reverse_proxy gles31-sys node_api_system nclean | ux-indicators videotorno esp_idf_logger snake-case-rename bdf-parser | molasses talamel siredir unic-idna-mapping rustx | ilc-format-energymech tfs-fuse-sys telium keystream debugtrace |
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 | ≤11 years |
|---|---|---|---|---|---|---|---|---|---|---|
|
14035
|
12666
|
13811
|
22311
|
35451
|
31821
|
25638
|
19825
|
28761
|
17466
|
3604 |
| verushash-rs ftui-simd autolua lgp-cli formatter-builder | rustler_logger_macro kitmap ribir-bot shaum-rules tlq-fhir-format | rapid-rs rustlite openapi-nexus arct-tui trezoa-stable-layout | rust-guardian just-mcp-lib ctnapi aws_utils_firehose zelos-trace-types | wingl lure get-file-size embed-resources rxvm | teom_guessing_game bevy_mod_async agave-geyser-plugin-manager linf tfhe-cuda-backend | serde_json5 dyn_ord handoff libphantomfs pink-runtime | azure_mgmt_deploymentmanager streamflow-sdk wordletron zeil jsonpath-plus | ux-indicators snake-case-rename pilka_ash tfsi bdf-parser | wl-clipboard-rs quilt tentacle tokio-test calcify | rust-puppetdb-cli tfs-fuse-sys codeplatter renv sgx-isa |
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 | ≥1000 |
|---|---|---|---|---|---|---|---|---|---|---|
|
27946
|
10088
|
10350
|
8344
|
1071 | 261 | 110 | 83 | 40 | 44 | 2 |
| macournoyer fd corasaurus-hex canadaduane mdub | mudge michaelmelanson vic raggi jvantuyl | ratmice oleganza walf443 nchapman bjc | bnusunny thequux madninja mazdak jcoletaylor | kou voluntas auxesis itiu chriswk amandasaurus maxcountryman upsuper | ForsakenHarmony carryxd mokurin000 Keruspe arcnmx 06chaynes danieldk hko-s | ryankurte losfair bmbper arceos-org kpcyrd jeremyBanks ahaoboy rise0chen | nymtech jstuczyn boozook haata ma2bd valff rivy danielhenrymantilla | vpetrigo bytecodealliance artob swc-bot Dirbaio AlexAegis wasmerio tp-m | aptos-crates mingyang91 benesch suzmue kdy1 ruvnet coryan rusoto |
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 |
|---|---|---|---|---|---|---|---|---|
|
23389
|
73751
|
85243
|
16832
|
15996 | 3565 | 5479 | 1095 | 39 |
| simple-digraph pbbot zigbee2mqtt_types_vendor_zen modifier_macro hello_macro | rusqlite-struct-derive console-codes edrv-ltr390uv rename kdmapi | tree-sitter-gomod gearhash azure_mgmt_deploymentmanager logfather yew-plotly | sapter azul-glutin fmi ome-metadata cargo-workspaces | therenderer atsams70q19b eure-document amtrack_rs rustledger-query | libmqm-sys font-awesome-as-a-crate esp32s2 kya-validator rsfdisk | equi-ty spreadsheet-mcp telraam-rs kon system-theme | mpeg2ps ripmors bevy_mod_async GORBIE eyepiece | occt-sys stm32-metapac efm32lg-pac musix 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.
| 44184 | 1596 | 534 | 331 |
| tokio | async-std | pollster | smol |
|---|
| 6256 | 3755 | 1308 | 592 | 558 | 157 | 47 | 20 |
| tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
|---|
| 6888 | 2406 | 1855 |
| rustls | native-tls | openssl |
|---|
| 2004 | 301 |
| git2 | gix |
|---|
| 68018 | 41129 | 542 |
| log | tracing | slog |
|---|
| 72914 | 41890 | 3271 | 3078 | 1993 | 1726 |
| thiserror | anyhow | quick-error | eyre | snafu | miette |
|---|
| 34510 | 1573 | 746 | 411 | 119 |
| clap | getopts | pico-args | argh | argparse |
|---|
| 1521 | 325 | 285 |
| pulldown-cmark | comrak | markdown |
|---|
| 21543 | 12358 | 208 |
| toml | toml_edit | basic-toml |
|---|
| 9961 | 6389 | 2463 | 1760 | 1382 | 179 |
| bincode | prost | rmp-serde | protobuf | ciborium | capnp |
|---|
| 69046 | 556 | 498 | 69 | 30 |
| serde_json | json5 | simd-json | miniserde | tinyjson |
|---|
| 12768 | 6179 | 2510 | 845 | 235 | 25 |
| nom | pest | combine | peg | pom | lalrpop |
|---|
| 3372 | 2193 | 1259 | 417 | 98 | 32 | 24 |
| quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
|---|
| 11244 | 510 |
| 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.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.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. 91% of requests were from stable (non-nightly) Rust versions. Less than 0.12% of requests came from Rust versions older than 1.60.
| This many crates.io requests… | 0% | 0% | 5% | 41% | 50% | 57% | 71% | 73% | 77% | 78% | 86% | 89% | 90% | 91% | 92% | 98% | 98% | 99.1% | 99.5% | 99.6% | 99.7% | 99.8% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| …use this stable version of Rust or newer | 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.83+ | 1.82+ | 1.80+ | 1.75+ | 1.74+ | 1.72+ | 1.70+ | 1.67+ | 1.65+ | 1.60+ |
| This many crates.io requests… | 0% | 4% | 5% | 7% | 7% | 7% | 7% | 8% | 8% | 8% | 8% | 8% | 8% | 8% | 8% | 9% | ||||||
| …use this or newer nightly version of Rust | 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.83+ | 1.82+ | 1.80+ | 1.75+ |