Growth of the crates.io registry
Crate downloads are growing at a rate of 2.1× per year.
crates.io has served 443.3 million downloads in a single day, which is more than all downloads in the first 38 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,453 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 178917 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 |
---|---|---|---|---|---|---|---|---|---|
29220
|
15691
|
16063
|
17159
|
14078
|
11409
|
9787
|
8223
|
7051
|
5887
|
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 |
---|---|---|---|---|---|---|---|---|---|---|
50501
|
33216
|
11183
|
20637
|
14365
|
16523
|
9413 |
10113
|
3730 | 1818 | 126 |
aws-unlock insectbox openvm-rv32-adapters exif-rs yttrium_std_database_exists | modifier_macro mind_sdk_lb rocket_anyhow hashirama simple-digraph | lightbird approx_eq send_cells vpb gpwg | harness-probe-perf regex_capture serde_skip torq_lang fundamentum-iot-mqtt-proto | iced_video_player libappstream signal-gen-cjds66-lib rustronomy-fits tree-sitter-arduino | cardinal-paid-claim-approver valence_anvil theban_interval_tree rusty_analytics xbgdump | netgauze-bgp-pkt cargo-credits crlify combination mz-avro | rerobots metriki-jemalloc trillium-http regecs-codegen http-cache-surf | tokio-test serde_at im flat_map ethcontract-generate | directories crossbeam-deque frank_jwt include_dir detect-desktop-environment | 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 |
---|---|---|---|---|---|---|---|---|---|---|
20493
|
12674
|
15013
|
19452
|
30607
|
23163
|
15301
|
13135
|
14260
|
7185
|
342 |
icao-wgs84 markovish rflex wl-clipboard-rs gcloud-kms | nom-parse-macros somose synd-feed zeusd tktax-in-and-out-of-range | embedded-websocket omicron-zone-package webrtc-ice url_handler openvm-rv32-adapters | screeps-pathfinding regview partiql-catalog ecs_helpers leptos-qr | nonstdfloat bashrand mown papa local-type-alias | kosh protoc-gen-prost-utoipa max_values pallet-crowdloan-rewards rsam | actix-postgres oasiscap navigator atsamv71j20 lnk-cryptovec | mando async_destruction tetsy-libp2p-uds capsule node-filter | xpsupport numero-por-extenso flat_map twiml txp | unwalk the liar simple-signal tokio-watchdog | jlens encoding-index-simpchinese rust-graph reminisce seax |
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 |
---|---|---|---|---|---|---|---|---|---|---|
5853 |
6284
|
9420
|
17181
|
32328
|
27425
|
20031
|
18252
|
20913
|
12616
|
1322 |
byted-jwt twine_builder cacheguard icentral-workspace axum-wist | tcp-echo-client google-cloud-asset-v1 astd nipdf-render tktax-in-and-out-of-range | marching_squares_wgpu ant-libp2p-upnp rengrep openvm-rv32-adapters polkadot-runtime-releaser-lib | filepack leptos-qr mnnrs patchable-async-sleep rglw | rpgpie-certificate-store jaredh159-test-adder-cli regiter_secrets flagged unc-abi-client-impl | air-beautifier netgauze-bgp-pkt lazyrand simperby-core canda | fs0 valkyrie-error mdbook-pagetoc nuttx-embedded-hal tantivy-analysis-contrib | async_destruction there-i-fixed-it ohys-api glslt_cli etwin_dinoparc_client | noting jqdata-model criner-cli porigon todo_web_server | tracing-allocator outils bytes32 qcgpu tail | jlens tempfile unicode-segmentation libarchive-sys lines |
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 |
---|---|---|---|---|---|---|---|---|---|---|
22229
|
7976
|
8223
|
6386
|
805 | 180 | 84 | 61 | 23 | 29 | 1 |
canadaduane ernesto-jimenez nakajima schacon kouky | raggi michaelmelanson deontologician mudge michaelklishin | stefanoc joshrotenberg jschanck emkay penryu | daaku lsegal thijsc rebo ggriffiniii | yvan-sraka jjl automation-wasmcloud TheWaWaR upsuper marirs amandasaurus labra | tyleo phil-opp mintlu8 sam0x17 BrantBrown porky11 alecmocatta LukeMathWalker | djc snnsnn fluencebot refcell robjtede bmbper casey Xuanwo | ma2bd boozook breathx jamesmunns gengteng rivy gkgoat1 bmwill | holochain strake Traverse-Research-CI-runner matthewkmayer yoshuawuyts miralandlabs therustmonk fuel-service-user | azure-sdk aws-sdk-rust-ci Azure kennykerr paritytech coryan vkill piot |
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 |
---|---|---|---|---|---|---|---|---|
21342
|
64805
|
58909
|
9565 | 9874 | 2490 | 3828 | 773 | 39 |
simple-digraph modifier_macro feat rust-ggm-test openvm-rv32-adapters | approx_eq date-calc-rs rocket_anyhow grrs-cli aws-ne-sys | memadvise aead quarantine fxp_clutter gpwg | dtt sixtyfps-lsp wasmer-wasi-near npsimd rgx | ft2 glulxe-sys neon findutils ryot | proxyboi pq-src centerline cherrybomb-swagger spyparty | rosesong signalk-multidisplay egui_material_icons openapitor kbnf | vuk ubits silly-png bevy_crt clfft | efm32gg-pac musix difftastic mupdf-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.
27403 | 1456 | 305 | 204 |
tokio | async-std | pollster | smol |
---|
2889 | 1528 | 1022 | 504 | 476 | 152 | 39 | 21 |
tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
---|
4774 | 1939 | 1592 |
rustls | native-tls | openssl |
---|
1318 | 148 |
git2 | gix |
---|
49878 | 25680 | 503 |
log | tracing | slog |
---|
43883 | 26010 | 2883 | 2113 | 1349 | 1015 |
thiserror | anyhow | quick-error | eyre | snafu | miette |
---|
23905 | 1095 | 407 | 328 | 113 |
clap | getopts | pico-args | argh | argparse |
---|
951 | 174 | 145 |
pulldown-cmark | markdown | comrak |
---|
13654 | 8623 | 139 |
toml | toml_edit | basic-toml |
---|
6884 | 4094 | 1487 | 1455 | 655 | 122 |
bincode | prost | rmp-serde | protobuf | ciborium | capnp |
---|
44123 | 343 | 212 | 31 | 14 |
serde_json | json5 | simd-json | miniserde | tinyjson |
---|
8960 | 4371 | 2065 | 508 | 124 | 25 |
nom | pest | combine | peg | pom | lalrpop |
---|
1998 | 1922 | 864 | 265 | 94 | 29 | 24 |
quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
---|
7296 | 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. 90% of requests were from stable (non-nightly) Rust versions. Less than 0.19% of requests came from Rust versions older than 1.65.
This many crates.io requests… | 0% | 3% | 27% | 57% | 70% | 72% | 75% | 92% | 93% | 94% | 97% | 99.2% | 99.4% | 99.6% | 99.8% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…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.78+ | 1.75+ | 1.70+ | 1.69+ | 1.67+ | 1.65+ |
This many crates.io requests… | 3% | 4% | 5% | 7% | 8% | 9% | 9% | 9% | 9% | 9% | 10% | ||||
…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.78+ | 1.75+ |