diff --git a/src/commonsizes.md b/src/commonsizes.md index 7b95751..202e15c 100644 --- a/src/commonsizes.md +++ b/src/commonsizes.md @@ -15,95 +15,104 @@ 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 excude 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): +``` +cloc --exclude-lang='make,m4,YAML,SVG,CMake,DTD,Markdown,CSS,Meson,diff,Dockerfile,NAnt script,HTML,TeX,PO File,reStructuredText,vim script,AsciiDoc' +``` ## Init systems | Name | loc | | ----------- | --------- | -| systemd | 722K | -| OpenRC | 21K | -| s6 | 20K | -| runit | 12K | -| sysVinit | 9K | +| systemd | 566K | x +| OpenRC | 14K | x +| s6 | 10K | x +| runit | 6.2K | x +| sysVinit | 8.7K | x ## Logging daemons Technically systemd includes its own logging daemon but here is omitted. | Name | loc | | ----------- | --------- | -| rsyslog | 157K | -| socklog | 5.6K | -| metalog | 2.5K | +| rsyslog | 152K | x +| socklog | 3.7K | x +| metalog | 1.9K | x ## Network Generic network management programs. | Name | loc | | --------------- | --------- | -| wpa_supplicant | 555K | -| kea | 486K | -| NetworkManager | 429K | -| ModemManager | 194K | -| connman | 103K | -| (e)iwd | 86K | -| dhcpcd | 41K | +| wpa_supplicant | 529K | x +| kea | 454K | x +| NetworkManager | 413K | x +| ModemManager | 192K | x +| connman | 98K | x +| iwd | 85K | x +| dhcpcd | 38K | x ## Music players | Name | loc | | ----------- | --------- | -| mpd | 102K | -| cmus | 42K | -| moc(p) | 35K | -| ncmpcpp | 25K | -| herrie | 7.4K | +| mpd | 93K | x +| cmus | 40K | x +| mocp | 35K | x +| ncmpcpp | 23K | x +| herrie | 7.1K | x ## Text editors Don't tell me you saw that one coming. | Name | loc | | ----------- | --------- | -| vim | 931K | -| neovim | 771K | -| vis | 109K | -| kakoune | 31K | -| micro | 29K | -| nano | 17K | +| vim | 667K | x +| neovim | 550K | x +| vis | 32K | x +| kakoune | 30K | x +| micro | 27K | x +| nano | 16K | x ## Build systems | Name | loc | | ----------- | --------- | -| cmake | 854K | -| tup | 271K | -| meson | 107K | -| GNU make | 34K | -| ninja | 20K | -| samurai | 3.7K | +| cmake | 774K | x +| tup | 243K | x +| meson | 68K | x +| GNU make | 31K | x +| ninja | 18K | x +| samurai | 3.3K | x ## Shells (POSIX or not) | Name | loc | | ----------- | --------- | -| bash | 210K | -| fish | 165K | -| zsh | 119K | -| ksh93 | 72K | -| tcsh | 65K | -| mksh | 30K | -| ash | 21K | -| dash | 13K | +| bash | 161K | x +| fish | 157K | x +| zsh | 115K | x +| ksh93 | 72K | x +| tcsh | 65K | x +| mksh | 30K | x +| ash | 12K | x +| dash | 13K | x ## Boot loaders/managers | Name | loc | | ----------- | --------- | -| CloverBoot | 1.8M | -| GRUB | 331K | -| syslinux | 254K | -| eEFInd | 75K | -| LILO | 36K | +| CloverBoot | 1.7M | x +| GRUB | 281K | x +| syslinux | 222K | x +| reEFInd | 27K | x +| LILO | 24K | x ## Display servers Dependencies are counted two levels "deep" excluding duplicates, from @@ -123,47 +132,47 @@ B: Code generated | Name | loc | | ----------- | --------- | -| dropbear | 144K | -| OpenSSH | 123K | -| TinySSH | 14K | +| dropbear | 101K | x +| OpenSSH | 123K | x +| TinySSH | 13K | x ## Terminal multiplexers | Name | loc | | ----------- | --------- | -| tmux | 132K | -| GNU screen | 36K | -| dvtm | 4.0K | +| tmux | 57K | x +| GNU screen | 32K | x +| dvtm | 4.1K | x ## Terminal emulators | Name | loc | | ----------- | --------- | -| kitty | 114K | -| alacritty | 26K | -| wayst | 24K | -| havoc | 10K | -| wterm | 10K | -| st | 4.4K | +| kitty | 174K | x +| alacritty | 18K | x +| wayst | 31K | x +| havoc | 10K | x +| wterm | 10K | x +| st | 4.3K | x ## Kernels | Name | loc | | ------------ | --------- | -| netbsd | 40M | -| linux | 21M | -| FreeBSD | 18M | -| OpenBSD | 17M | -| DragonflyBSD | 934K | +| netbsd | 32M | x +| linux | 19M | x +| FreeBSD | 16M | x +| OpenBSD | 15M | x +| DragonflyBSD | 887K | x ## Permission managers | Name | loc | | ----------- | --------- | -| sudo | 195K | -| polkit | 26K | -| OpenDoas | 2.9K | -| PAM | 61K | +| sudo | 140K | x +| polkit | 22K | x +| OpenDoas | 2.8K | x +| PAM | 60K | x ## Compilers @@ -172,38 +181,55 @@ B: Code generated | gcc | 9.0M | | llvm | 8.0M | | zig | 2.1M | -| rust | 856K | +| rust | 801K | x | tcc | 93K | ## Torrent clients | Name | loc | | ------------- | --------- | -| qBittorrent | 762K | -| transmission | 329K | -| deluge | 137K | -| rtorrent | 24K | +| qBittorrent | 743K | x +| transmission | 282K | x +| deluge | 118K | x +| rtorrent | 22K | x ## Web browsers Does not include libraries, only the main repos. | Name | loc | | ----------- | --------- | -| chromium | | -| Firefox | 27M | +| chromium | too large | +| Firefox | 19M | x +| Webkit | 12M | x +| qutebrowser | 92K | x +| min | 20K | x +| vimb | 9.4K | x | badwolf | 1.8K | ## Window managers | Name | loc | | ----------- | --------- | -| awesome | 83K | -| i3 | 58K | -| openbox | 42K | -| bspwm | 12K | +| awesome | 65K | x +| i3 | 44K | x +| openbox | 40K | x +| bspwm | 12K | x | 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 + ## Wayland compositors | Name | loc | @@ -218,11 +244,11 @@ Does not include libraries, only the main repos. | Name | loc | | ------------- | --------- | -| rofi | 84K | -| bemenu | 6.6K | -| wofi | 4.3K | -| nwg-launchers | 3.5K | -| dmenu | 1.3K | +| rofi | 20K | x +| bemenu | 5.3K | x +| wofi | 3.6K | x +| nwg-launchers | 2.2K | x +| dmenu | 1.2K | x ## Device managers NOTE: mdev is only one source file, so loc count doesn't @@ -230,68 +256,68 @@ include anything but that file. | Name | loc | | ----------- | --------- | -| eudev | 28K | -| mdevd | 2.3K | -| smdev | 771 | +| eudev | 27K | x +| mdevd | 1.6K | x +| smdev | 697 | x | mdev | 751 | ## Initramfs generators | Name | loc | | ----------- | --------- | -| dracut | 32K | -| tinyramfs | 1.0K | +| dracut | 28K | x +| tinyramfs | 448 | x ## Code counters | Name | loc | | ----------- | --------- | -| scc | 19K | -| tokei | 11K | +| scc | 41K | x +| tokei | 5.7K | x ## Package managers | Name | loc | | ----------- | --------- | -| apt | 100K | -| xbps | 43K | -| pacman | 37K | -| apk | 17K | -| kiss | 1.1K | +| apt | 98K | x +| xbps | 40K | x +| pacman | 28K | x +| apk | 17K | x +| kiss | 1.0K | x ## Webservers | Name | loc | | ----------- | --------- | | apache | 419K | -| nginx | 142K | -| hiawatha | 113K | -| lighttpd | 75K | -| caddy | 30K | +| nginx | 144K | x +| hiawatha | 105K | x +| lighttpd | 70K | x +| caddy | 27K | x ## Syncronization and backup programs | Name | loc | | ----------- | --------- | -| borg | 236K | -| syncthing | 153K | -| git-annex | 123K | -| rsync | 56K | -| restic | 49K | -| casync | 33K | +| borg | 86K | x +| syncthing | 129K | x +| git-annex | 77K | x +| rsync | 51K | x +| restic | 43K | x +| casync | 31K | x ## Others Stuff that doesn't fit any other category (for now) | Name | loc | | ----------- | --------- | -| openssl | 894K | -| bluez | 395K | -| libressl | 384K | -| elogind | 145K | -| dbus | 126K | -| tint2 | 37K | -| lowdown | 19K | -| pass | 3.5K | +| 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 [1]: https://github.com/boyter/scc