Flatpak vs Anylinux-AppImages

Disk usage comparison with 20 apps

Steps:

appman -i \
	ares \
	azahar-enhanced \
	cemu-enhanced \
	cromite \
	discord \
	dolphin-emu \
	freetube-enhanced \
	goverlay \
	gpu-screen-recorder \
	kdenlive-enhanced \
	librecad \
	lutris \
	mame \
	mpv \
	obs-studio \
	oversteer \
	pinta \
	ppsspp \
	puddletag \
	rnote \
	sas

appman -f
flatpak install \
	com.dec05eba.gpu_screen_recorder \
	com.discordapp.Discord \
	com.github.flxzt.rnote \
	com.github.PintaProject.Pinta \
	com.obsproject.Studio \
	dev.ares.ares \
	info.cemu.Cemu \
	io.freetubeapp.FreeTube \
	io.github.benjamimgois.goverlay \
	io.github.berarma.Oversteer \
	io.github.ungoogled_software.ungoogled_chromium \
	io.mpv.Mpv \
	net.lutris.Lutris \
	net.puddletag.puddletag \
	org.azahar_emu.Azahar \
	org.DolphinEmu.dolphin-emu \
	org.kde.kdenlive \
	org.librecad.librecad \
	org.mamedev.MAME \
	org.ppsspp.PPSSPP

flatpak uninstall --unused
flatpak-dedup-checker

Result

AppImage: 2.0 GiB.

flatpak: 6.27 GiB.

AnyLinux-AppImages use 3.1 times less storage than flatpak.

results


Worthy note:

In the end, a lot of the flatpak bloat comes from the fact that flatpak suffers from something that I call flatpak-hell, flatpak-hell is when one application depends on runtime version 2.2.0 but application B depends on a runtime version 2.2.1 so that means that both runtimes need to be downloaded and installed.

Lets assume flatpak manages to fix this issue (will never happen), how will that look? Well we can simulate that using alpine linux:


Bonus comparison: Anylinux-AppImages vs Alpine linux

Alpine linux is a very minimal distro whose developers actually put effort to reduce the size of the packages, example.

We have to upgrade to the edge repo since stable is too old and lacks a lot of apps:

distrobox create -i alpine
distrobox enter alpine
printf "%s\n" \
	"https://dl-cdn.alpinelinux.org/alpine/edge/main" \
	"https://dl-cdn.alpinelinux.org/alpine/edge/community" \
	"https://dl-cdn.alpinelinux.org/alpine/edge/testing" \
	| sudo tee -a /etc/apk/repositories
sudo sed -i -e '/v3.21/d' /etc/apk/repositories
sudo apk upgrade

After doing this podman ps -a --size --filter "name=alpine" reports a container size of 535MB (virtual 560MB).

Now lets add the applications, even after upgrading to the edge repo a lot of applications are not available, I was only able to install the following 12 applications:

sudo apk add \
	cemu \
	chromium \
	freetube \
	kdenlive \
	lutris \
	wine \
	mame \
	mpv \
	obs-studio \
	pinta \
	ppsspp \
	rnote

After adding those 12 applications the container size increase 3.27GB (virtual 3.29GB). So yeah we also use less storage than Alpine, note however I think this size does not take Btrfs compression into account, I tried to get the value but couldn’t (running btrfs filesystem du -s on the alpine container reported 7 MIb which is just impossible lol).