Growth of the crates.io registry
Crate downloads are growing at a rate of 2.2× per year.
crates.io has served 513.9 million downloads in a single day, which is more than all downloads in the first 40 months since the release of Rust 1.0 in May 2015.
Traffic during weekdays is typically 2.8× higher than during weekends (down from 3.0× a year before).
There are 55,242 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 215541 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 |
|---|---|---|---|---|---|---|---|---|---|
|
31928
|
17604
|
17986
|
19850
|
16337
|
13597
|
11767
|
9929
|
8737
|
7280
|
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 |
|---|---|---|---|---|---|---|---|---|---|---|
|
59606
|
40647
|
13215
|
24500
|
16648
|
19535
|
11085 |
11427
|
4862 | 2276 | 319 |
| openvm-rv32-adapters insectbox anvil-liquid-derive exif-rs aws-unlock | simple-digraph mind_sdk_lb hashirama modifier_macro haste-macro-loads | devrun gpwg lightbird tc-consensus-pow dir_contents | geph4-vpn-helper fromsoftware-dlrf-derive harness-probe-perf falco_schema_derive smol-macros | vino-provider arcis-internal-expr-macro cargo-minicov mtf mpdclient-sys | ragged-buffer check-if-email-exists-grpc xbgdump tdlib-tl-gen tacoda_grrs | docsearch graph_mvcc combination disintegrate-serde disruption_types | rust-embed-for-web-utils criterion-macro regecs-codegen clvm-utils mdbook-pdf-headless_chrome | tokio-test syncat im base58 wasmer-c-api | open_ai serde_tagged libpulse-simple-binding swc_ecma_codegen poston | fern libloading mozjs_sys diesel epoll |
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.
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 |
|---|---|---|---|---|---|---|---|---|---|---|
| 4890 |
9250
|
11823
|
21264
|
35000
|
31556
|
24185
|
19203
|
27536
|
16289
|
3124 |
| egui-thematic finance-query-core rigatoni-stores pezkuwichain-zagros-system-emulated-network pveauto | syntaxfmt-macros convert_sevancho rustlite physim-attribute asyncapi-rust-codegen | flix-fs parser-proxy-ws pibtool-stock-data nesting ms-concurrency | numbat-wasm-module-governance mctp-usb-embassy portal-solutions-debuff this-env drand48 | bevyhub_core pytauri register-actix-routes pubky-app-specs openvm-rv32-adapters | ihex-merge cargo-util-schemas range-compare include-utils-macro iceoryx2-pal-concurrency-sync | dimensional_quantity sqlx-tester polywrap_msgpack fr33zmenu try_as_traits | harbor_rs avanza fixed_typemap_macros kyun libscripthookv-sys | hex-noalloc better-as cargo-credential mz_rusoto_eks mz_rusoto_mediaconnect | ruuvitag-listener tumblr-likes heph ego virtdisk-rs | xsettings isbnid rotor-stream unum mtbl-sys |
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 |
|---|---|---|---|---|---|---|---|---|---|---|
|
26368
|
9505
|
9715
|
7731
|
977 | 236 | 104 | 74 | 36 | 39 | 1 |
| knzconnor mdub nakajima shanesveller dgoodlad | schacon deontologician mudge michaelmelanson fazibear | oleganza jfernandez jamesturk paulstansifer nex3 | agrover levicook walkah raine ggriffiniii | upsuper marirs rob-p birkenfeld theduke yvan-sraka Narsil devrandom | devolutionsinfra 19h danieldk TobiasBengtsson GabrielePicco hardliner66 A1-Triard Protryon | fluencebot aatifsyed j-mendez mangonui bevyengine MOZGIII ahaoboy rvolosatovs | mattsse mikevoronov bmwill uutils bobbinth ijackson doitian danielhenrymantilla | sunfishcode howardwu PsichiX silwol bytecodealliance therustmonk vpetrigo miralandlabs | Wandalen cool-japan codyoss madsmtm googleapis Azure kdy1 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 |
|---|---|---|---|---|---|---|---|---|
|
22410
|
70697
|
74940
|
13733 | 13267 | 3152 | 4909 | 973 | 39 |
| feat simple-digraph yttrium_std_database_exists modifier_macro openvm-rv32-adapters | grrs-cli unc-abi-client-impl nesting vconfig_codegen haste-macro-loads | tree-sitter-gomod soroban-ledger-snapshot drt-price-aggregator-sc grammarbot-io teacat_lib | arithmetic-parser bevy_touch_stick sapter font-map-core dtt | mempool_space rtran ft2 atsams70q19b findutils | npezza93-tree-sitter-ruby mantaray aws-sdk-codepipeline asdf-overlay-hook poro | easy-alias cfn R413D08 openapitor bevy_flair | temp-tui cw-it homie cargo-glados tablegen | wolfssl-sys efm32gg12b-pac openblas_ffi kube-custom-resources-rs gdal-src |
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.
| 38143 | 1562 | 417 | 309 |
| tokio | async-std | pollster | smol |
|---|
| 5035 | 2835 | 1241 | 579 | 542 | 157 | 42 | 20 |
| tower | axum | actix-web | rocket | warp | poem | rouille | gotham |
|---|
| 6176 | 2232 | 1793 |
| rustls | native-tls | openssl |
|---|
| 1777 | 242 |
| git2 | gix |
|---|
| 61274 | 35032 | 540 |
| log | tracing | slog |
|---|
| 62181 | 36335 | 3106 | 2791 | 1778 | 1482 |
| thiserror | anyhow | quick-error | eyre | snafu | miette |
|---|
| 30684 | 1362 | 613 | 373 | 119 |
| clap | getopts | pico-args | argh | argparse |
|---|
| 1275 | 245 | 238 |
| pulldown-cmark | markdown | comrak |
|---|
| 18636 | 11250 | 179 |
| toml | toml_edit | basic-toml |
|---|
| 9376 | 5650 | 2072 | 1606 | 1157 | 156 |
| bincode | prost | rmp-serde | protobuf | ciborium | capnp |
|---|
| 59695 | 452 | 419 | 66 | 22 |
| serde_json | json5 | simd-json | miniserde | tinyjson |
|---|
| 11468 | 5569 | 2300 | 695 | 174 | 25 |
| nom | pest | combine | peg | pom | lalrpop |
|---|
| 2770 | 2102 | 1123 | 350 | 95 | 32 | 24 |
| quick-xml | xml-rs | xmlparser | xml5ever | libxml | rxml | elementtree |
|---|
| 9933 | 494 |
| 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.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.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.12% of requests came from Rust versions older than 1.63.
| This many crates.io requests… | 0% | 8% | 47% | 55% | 63% | 69% | 73% | 77% | 81% | 84% | 85% | 86% | 89% | 90% | 98% | 98% | 98% | 99.6% | 99.7% | 99.8% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| …use this stable version of Rust or newer | 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.79+ | 1.75+ | 1.74+ | 1.72+ | 1.70+ | 1.67+ | 1.63+ |
| This many crates.io requests… | 7% | 8% | 9% | 9% | 10% | 10% | 11% | 11% | 11% | 12% | ||||||||||
| …use this or newer nightly version of Rust | 1.94+ | 1.93+ | 1.92+ | 1.91+ | 1.90+ | 1.89+ | 1.88+ | 1.87+ | 1.86+ | 1.85+ |