You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
alemauri.eu/src/commonsizes.md

341 lines
8.8 KiB

Title: Size in loc of common software
Author: Alessandro Mauri
4 years ago
# Size in loc of common software
Bloat is everywhere, in 2018 I started my journey on debloating my digital
life, so far I mostly use linux as my main OS (the mostly is due to uni
stuff I don't want and/or have time to deal with), I don't use a desktop environment,
got rid of systemd, pulseaudio and polkit just to name a few. I could go on
about how I debloated most of my computing life but that is not the goal
of this article, that is I recently started to wonder: how much bloat is really
there?
In order to answer that question I rolled up my sleeves and with the mighty
power of post-its, git and [scc][1] I cloned the repositories of many
common programs in order to check their bloat suckless style, with
lines of code. Let's get to the data.
**UPDATE**: I changed the method for counting lines of code, that is I changed
utility from [scc][1] to [cloc][2]. The reason behind this is that [cloc][2]
allows to exclude a list of languages from the code count, that way I can count
only the lines that matter excluding stuff like documentation and so on.
So entries marked with *"x"* mean that they were re-counted using the following
command (that's a big command):
4 years ago
```sh
$ cloc --exclude-lang='make,m4,YAML,SVG,CMake,DTD,Markdown,CSS,\
Meson,diff,Dockerfile,NAnt script,HTML,TeX,PO File,reStructuredText,\
vim script,AsciiDoc'
```
4 years ago
## Init systems
| Name | loc |
| ----------- | --------- |
| systemd | 566K | x
| OpenRC | 14K | x
| s6 | 10K | x
| runit | 6.2K | x
| sysVinit | 8.7K | x
4 years ago
## Logging daemons
Technically systemd includes its own logging daemon but here is omitted.
| Name | loc |
| ----------- | --------- |
| rsyslog | 152K | x
| socklog | 3.7K | x
| metalog | 1.9K | x
4 years ago
## Network
Generic network management programs.
| Name | loc |
| --------------- | --------- |
| wpa_supplicant | 529K | x
| kea | 454K | x
| NetworkManager | 413K | x
| ModemManager | 192K | x
| connman | 98K | x
| iwd | 85K | x
| dhcpcd | 38K | x
4 years ago
## Music players
| Name | loc |
| ----------- | --------- |
| mpd | 93K | x
| cmus | 40K | x
| mocp | 35K | x
| ncmpcpp | 23K | x
| herrie | 7.1K | x
4 years ago
## Cron daemons
| Name | loc |
| ----------- | --------- |
| fcron | 12K | x
| cronie | 7.5K | x
| dcron | 2.1K | x
| scron | 1.0K | x
| tinycron | 117 | x
4 years ago
## Text editors
Don't tell me you saw that one coming.
| Name | loc |
| ----------- | --------- |
| vim | 667K | x
| neovim | 550K | x
| vis | 32K | x
| kakoune | 30K | x
| micro | 27K | x
| nano | 16K | x
4 years ago
## Build systems
| Name | loc |
| ----------- | --------- |
| cmake | 774K | x
| tup | 243K | x
| meson | 68K | x
| GNU make | 31K | x
| ninja | 18K | x
| samurai | 3.3K | x
4 years ago
## Shells (POSIX or not)
| Name | loc |
| ----------- | --------- |
| bash | 161K | x
| fish | 157K | x
| zsh | 115K | x
| ksh93 | 72K | x
| tcsh | 65K | x
| mksh | 30K | x
| ash | 12K | x
| dash | 13K | x
4 years ago
## Boot loaders/managers
| Name | loc |
| ----------- | --------- |
| CloverBoot | 1.7M | x
| GRUB | 281K | x
| syslinux | 222K | x
| reEFInd | 27K | x
| LILO | 24K | x
4 years ago
## Display servers
Dependencies are counted two levels "deep" excluding duplicates, from
the alpine linux x86_64 package repositories.\
U: Not built, protocol code not generated
B: Code generated
| Name | loc | dependencies |
| ------------------- | --------------- | ------------ |
| xorg-server | 422K | 44 |
| - | - | - |
| wayland + | | |
| wayland-protocols + | | |
| wlroots | U: 97K, B:268K | 27 |
## SSH servers/clients
| Name | loc |
| ----------- | --------- |
| dropbear | 101K | x
| OpenSSH | 123K | x
| TinySSH | 13K | x
4 years ago
## Terminal multiplexers
| Name | loc |
| ----------- | --------- |
| tmux | 57K | x
| GNU screen | 32K | x
| dvtm | 4.1K | x
4 years ago
## Terminal emulators
| Name | loc |
| ----------- | --------- |
| kitty | 174K | x
| alacritty | 18K | x
| wayst | 31K | x
| havoc | 10K | x
| wterm | 10K | x
| st | 4.3K | x
4 years ago
## Kernels
| Name | loc |
| ------------ | --------- |
| netbsd | 32M | x
| linux | 19M | x
| FreeBSD | 16M | x
| OpenBSD | 15M | x
| DragonflyBSD | 887K | x
4 years ago
## Permission managers
| Name | loc |
| ----------- | --------- |
| sudo | 140K | x
| polkit | 22K | x
| OpenDoas | 2.8K | x
| PAM | 60K | x
4 years ago
## Compilers
| Name | loc |
| ----------- | --------- |
| gcc | 9.0M |
| llvm | 8.0M |
| zig | 2.1M |
| rust | 801K | x
4 years ago
| tcc | 93K |
## Torrent clients
| Name | loc |
| ------------- | --------- |
| qBittorrent | 743K | x
| transmission | 282K | x
| deluge | 118K | x
| rtorrent | 22K | x
4 years ago
## Web browsers
Does not include libraries, only the main repos.
| Name | loc |
| ----------- | --------- |
| chromium | too large |
| Firefox | 19M | x
| SeaMonkey | 17M | x
| Webkit | 12M | x
| qutebrowser | 92K | x
| min | 20K | x
| vimb | 9.4K | x
| Lynx | 177K | x
| links | 166K | x
| dillo | 66K | x
4 years ago
| badwolf | 1.8K |
## Window managers
| Name | loc |
| ----------- | --------- |
| awesome | 65K | x
| i3 | 44K | x
| openbox | 40K | x
| bspwm | 12K | x
4 years ago
| 2bwm | 3.3K |
| dwm | 2.5K |
## Audio systems
### ALSA
| Name | loc |
| ------------- | --------- |
| alsa-firmware | 133K | x
| alsa-lib | 93K | x
| alsa-tools | 43K | x
| alsa-utils | 36K | x
| alsa-plugins | 12K | x
| alsa-oss | 4.0K | x
4 years ago
## Wayland compositors
| Name | loc |
| ----------- | --------- |
| weston | 117K |
| sway | 42K |
| wayfire | 27K |
| hikari | 15K |
| river | 5.9K |
## Application launchers
| Name | loc |
| ------------- | --------- |
| rofi | 20K | x
| bemenu | 5.3K | x
| wofi | 3.6K | x
| nwg-launchers | 2.2K | x
| dmenu | 1.2K | x
4 years ago
## Device managers
NOTE: mdev is only one source file, so loc count doesn't
include anything but that file.
| Name | loc |
| ----------- | --------- |
| eudev | 27K | x
| mdevd | 1.6K | x
| smdev | 697 | x
4 years ago
| mdev | 751 |
## Initramfs generators
| Name | loc |
| ----------- | --------- |
| dracut | 28K | x
| tinyramfs | 448 | x
4 years ago
## Code counters
| Name | loc |
| ----------- | --------- |
| scc | 41K | x
| tokei | 5.7K | x
4 years ago
## Package managers
| Name | loc |
| ----------- | --------- |
| apt | 98K | x
| xbps | 40K | x
| pacman | 28K | x
| apk | 17K | x
| kiss | 1.0K | x
4 years ago
## Webservers
| Name | loc |
| ----------- | --------- |
| apache | 419K |
| nginx | 144K | x
| hiawatha | 105K | x
| lighttpd | 70K | x
| caddy | 27K | x
4 years ago
## Syncronization and backup programs
| Name | loc |
| ----------- | --------- |
| borg | 86K | x
| syncthing | 129K | x
| git-annex | 77K | x
| rsync | 51K | x
| restic | 43K | x
| casync | 31K | x
4 years ago
## Others
Stuff that doesn't fit any other category (for now)
| Name | loc |
| ----------- | --------- |
| openssl | 642K | x
| bluez | 373K | x
| libressl | 374K | x
| elogind | 137K | x
| dbus | 115K | x
| tint2 | 33K | x
| lowdown | 15K | x
| pass | 2.8K | x
4 years ago
[1]: https://github.com/boyter/scc
[2]: https://github.com/AlDanial/cloc