Rust Digger: More than 14% of crates configure rustfmt. 35 have both rustfmt.toml and .rustfmt.toml

Date: 2024.04.03

In the past week after several false direction I made some progress collecting information about the use of rustfmt. I found that 14,951 of the crates (10.53%) have rustfmt.toml and 5,420 crates (3.81%) have .rustfmt.toml 35 crates have both. As far as I understand in those cases rustfmt will disregard rustfmt.toml.

BTW there are 11 crates without an owner. Is that a bug in Rust-digger or in the database of Crates.io or my own understanding of the world?

The number of crates with repository URLs that are either invalid or we don't recognize yet is down to 738 (from 858 last week) as I've mapped a few more. Here is the list of crates with invalid or unrecognized repository.

Number of crates

There are now 141,982 (1,773 more than a week ago).

How is rustfmt configured?

See the collected data on which configuration options are used for rustfmt. The most popular configuration options are:

name count
max_width 4774
edition 3168
imports_granularity 2942
use_field_init_shorthand 2853
wrap_comments 2391
tab_spaces 2262
newline_style 2193
reorder_imports 2131
use_small_heuristics 2046
See the full list.

There are apparently crates that have the following in their rustfmt.toml file: Please don't run rustfmt on this repository

The array_width field has a lot of very different values. There are crates where it is set to 0 or 1 or 500000.

From the fmt page you can find the list of crates that have the given configuration option with the given value.

Rust Digger Stats from the stats page

name value percentage
total 141,982 100%
No repository 27,571 19.41%
Has homepage but no repository 3,315 2.33%
No homepage and no repository 24,256 17.08%
On GitHub but no CI 57,341 40.38%
On GitLab but no CI 1,856 1.3%
Crates without owner name 21,159 14.9%
Crates without owner 11 0%
Has rustfmt.toml 14,951 10.53%
Has .rustfmt.toml 5,420 3.81%
Has both rustfmt.toml and .rustfmt.toml 35 0.02%
Has Cargo.toml in root 94,472 66.53%
Has no Cargo.toml in root 47,510 33.46%

VCS hosts from the VCS page

name platform crates percentage
GitHub GitHub 107,215 75.51%
Has no repository Unknown 27,571 19.41%
GitLab GitLab 3,634 2.55%
Other repositories we don't recognize Unknown 738 0.51%
Codeberg Forgejo 481 0.33%
srht Unknown 413 0.29%
Repo with http Unknown 306 0.21%
GitHub with www Unknown 232 0.16%
Gitee Unknown 166 0.11%
Free Desktop GitLab 130 0.09%
Bitbucket Unknown 119 0.08%
Gnome GitLab 79 0.05%
Asonix Forgejo 70 0.04%
Tor Project GitLab 63 0.04%
Redox OS GitLab 52 0.03%
pijul.com Unknown 48 0.03%
Qrnch tech Unknown 36 0.02%
sourcehut Unknown 34 0.02%
Debian GitLab 28 0.01%
framagit.org GitLab 23 0.01%
duniter.org GitLab 21 0.01%
deuxfleurs Forgejo 19 0.01%
Cronce GitLab 19 0.01%
hatter Gitea 15 0.01%
Open CoDE GitLab 14 0%
moparisthebest Gitea 13 0%
e3t Unknown 13 0%
Wikimedia GitLab 12 0%
pipapo Gitea 12 0%
University Stuttgart Gitea 11 0%
Open Logistics Foundation GitLab 11 0%
cscherr Forgejo 11 0%
scd31 GitLab 10 0%
picodata GitLab 10 0%
Philomathic Life Unknown 10 0%
kitware GitLab 10 0%
bauke Forgejo 10 0%
gitgud GitLab 9 0%
push-f.com Cgit 8 0%
mozilla Mercurial 8 0%
LCR Code GitLab 8 0%
heptapod.net GitLab 8 0%
4neko Gitea 8 0%
front.kjuulh.io Gitea 7 0%
fem.mint.lgbt Forgejo 7 0%
computer.surgery GitLab 7 0%
communiquons Gitea 7 0%
chiselapp Fossil 7 0%
alienscience Forgejo 7 0%
ngni.us Forgejo 6 0%
Kernel Cgit 6 0%
colean Forgejo 6 0%
batsense.net Forgejo 6 0%
3lp.cx Gitea 6 0%
vdx.hu Forgejo 5 0%
themackabu.dev GitLab 5 0%
themackabu GitLab 5 0%
Syndicate-lang Forgejo 5 0%
sokoll.com GitLab 5 0%
Open Privacy Gitea 5 0%
notabug Unknown 5 0%
inria.fr GitLab 5 0%
Software Heritage GitLab 4 0%
skreutz Cgit 4 0%
mentality Gitea 4 0%
Lightsout Games Gitea 4 0%
jekel.ca Gitea 4 0%
ewi.tudelft.nl GitLab 4 0%
dblsaiko.net Cgit 4 0%
CERN GitLab 4 0%
beyermatthi.as Cgit 4 0%
aaronmanning.net Gitea 4 0%
vwolfe Forgejo 3 0%
touhou.fm GitLab 3 0%
shipyard.rs Gitea 3 0%
owo.codes GitLab 3 0%
orbitsolutions Gitea 3 0%
Midefos Gitea 3 0%
invent.kde.org GitLab 3 0%
in2p3.fr GitLab 3 0%
hydrar.de Gitea 3 0%
geomar GitLab 3 0%
flying-kestrel Unknown 3 0%
fizz.buzz Gitea 3 0%
atomgit.com Unknown 3 0%
archlinux GitLab 3 0%
alemi.dev Cgit 3 0%
agnos.is Forgejo 3 0%
ablecorp.us Gitea 3 0%
voremicrocomputers.com GitLab 2 0%
vanten-s.com Forgejo 2 0%
sourceforge Unknown 2 0%
rtng Gitea 2 0%
pijul.org Unknown 2 0%
lidavidm.me Cgit 2 0%
lemonsh Forgejo 2 0%
Jeffa Gitea 2 0%
Gitea Gitea 2 0%
fawkes.io Gitea 2 0%
envs Gitea 2 0%
duguying Gitea 2 0%
Dubzland GitLab 2 0%
dragonma Cgit 2 0%
cyplo.dev Forgejo 2 0%
cybre.tech Forgejo 2 0%
based.computer Forgejo 2 0%
arielaw.ar Forgejo 2 0%
Apple Bear Gitea 2 0%
whoisthisjoker Gitea 1 0%
ueda.info.waseda GitLab 1 0%
txmn Forgejo 1 0%
tozt Cgit 1 0%
swzry.com Gogs 1 0%
solarpunk.moe Forgejo 1 0%
simaek Gitea 1 0%
sergeych.net Gitea 1 0%
reidlab.online Forgejo 1 0%
reclaimprotocol GitLab 1 0%
radial Forgejo 1 0%
panter GitLab 1 0%
onders.org Forgejo 1 0%
madhouse-project.org Forgejo 1 0%
latte Gitea 1 0%
kemitix.net Forgejo 1 0%
jesterpm Cgit 1 0%
jellypro.xyz Gitea 1 0%
ixhby.dev Forgejo 1 0%
it-syndikat.org Forgejo 1 0%
hrzn Forgejo 1 0%
hedwing.dev Gitea 1 0%
git.gay Forgejo 1 0%
franklinblanco.dev Gitea 1 0%
flueren.eu Gitea 1 0%
exozy.me Forgejo 1 0%
esclear.de Forgejo 1 0%
doggoat.de Forgejo 1 0%
Disroot Forgejo 1 0%
cijber.net Gitea 1 0%
catgirls.systems Forgejo 1 0%
buny.computer Forgejo 1 0%
bues.ch Unknown 1 0%
Bitcoin Ninja Unknown 1 0%
betalupi.com Gitea 1 0%
ascee.nl Gitea 1 0%
amikhalev.com Gitea 1 0%
aikuro.net Gitea 1 0%
meli-email.org Gitea 0 0%