Snaps vs Flatpaks vs Appimages vs Packages: benchmarks, missing features and differences

HomeOther ContentSnaps vs Flatpaks vs Appimages vs Packages: benchmarks, missing features and differences
Snaps vs Flatpaks vs Appimages vs Packages: benchmarks, missing features and differences
Snaps vs Flatpaks vs Appimages vs Packages: benchmarks, missing features and differences
Try Proton VPN, my choice for a secure and private VPN: https://protonvpn.com/TheLinuxEXP

Get a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#

SUPPORT THE CHANNEL:
Access a weekly podcast, vote on the next topics I cover and get your name in the credits:

YouTube: https://www.youtube.com/@thelinuxexp/join
Patreon: https://www.patreon.com/thelinuxexperiment
Liberapay: https://liberapay.com/TheLinuxExperiment/

Or you can donate what you want: https://paypal.me/thelinuxexp

GET TLE PRODUCTS
Support the channel AND get cool new hardware: https://the-linux-experiment.creator-spring.com/

️ LINUX AND OPEN SOURCE NEWS PODCAST:
Hear the latest Linux and open source news, with deeper, ad-free coverage! https://podcast.thelinuxexp.com

FOLLOW ME ELSEWHERE:
Website: https://thelinuxexp.com
Mastodon: https://mastodon.social/web/@thelinuxEXP
Pixelfed: https://pixelfed.social/TLENick
PeerTube: https://tilvids.com/c/thelinuxexperiment_channel/videos
Discord: https://discord.gg/mdnHftjkja

#Linux #Flatpak #Snap #AppImage

00:00 Introduction
00:47 Sponsor: Proton VPN
02:17 Quick summary of formats
05:52 Performance benchmarks
08:52 Sandbox
11:41 Missing features
15:24 Parting thoughts
4:59 p.m. Sponsor: Get a PC designed to run Linux
6:00 p.m. Support the channel

So what we call "packages/" are debs, for distributions based on Debian and Ubuntu, and RPMs for distributions based on Red Hat and SUSE. These packages can contain libraries or applications, and all libraries are shared between applications.

Next we have Flatpaks, which are distribution agnostic. Flatpaks are sandboxed, and although they share many libraries across runtimes, they may use more space over time.

Snaps are basically the same concept as flatpaks, created by Ubuntu. There are a few technical differences with flatpaks, the main one being that Snaps are suitable for graphics applications and command line programs.

AppImages are a more portable format: the entire application comes in a single file, along with most, if not all, of its libraries. This means you can copy/paste applications from one system to another and they will run on any distribution that has access to FUSE2.

Now let's look at a performance comparison between different packaging formats.
I ran all these tests on the same Ubuntu 23.04 VM, with 16GB RAM, 4 cores of my 13th gen i7 13700h.

Judging from the results, we can see that all packaging formats take longer to start than the base packages. This is especially noticeable with heavy applications that require configuration when first opened, like LibreOffice or GIMP. But we also notice that when opening an app later, all the packaging formats are quite similar.

I ran the Speedometer test in all 4 versions of Firefox: snap works worse for jetstream, but much better for Speedometer, while flatpak works equally well for SPeedometer, but worse for jetstream. The Deb packages work well for Jetstream, but worse for Speedometer, and the Appimage is generally just a good performer.

A sandboxed application runs in its own environment, with very few ways to access things outside of that sandbox. This is similar to how web browsers run each tab in a separate process.

Standard packages are not sandboxed by default: this essentially means that you should only install these packages from trusted sources: either your distribution's repositories or well-verified third-party repositories.

According to Flatpaks, they are all sandboxed. The sandbox isn't 100% bulletproof, nothing is, but it does limit what the app can access. This is all managed through app permissions, much like what you'll find in Android or iOS apps.

Snaps can be sandboxed, but sandboxing is not required: developers can choose not to use it, although it triggers a manual review of the Snap app when it is uploaded to the Snap Store. to check if she's doing anything weird. According to AppImages, they don't natively have a sandbox.

Now let's see what's missing in terms of features. Regular packages can access everything, so there are no missing features.

Flatpaks and snaps have more restrictions. The main missing piece is native messaging support: this is what allows one application to communicate with another, and one of the main use cases is for password managers: currently, none Web browser provided as a flatpak or snap cannot reliably interact with a third-party password manager.

System theme support is also not perfect for snaps and flatpaks, nor for AppImages.

In keeping with the various issues with these packaging formats, you also have package sizes: although Snaps and Flatpaks share libraries between apps, they don't share as much as regular packages, which means they can take up more space.

Snaps also have the added problem of mounting each application in its own virtual filesystem, which is unzipped on the fly: this can clutter your mount points, which can be annoying if you have to manage them regularly. The Snap Store backend is also proprietary and centralized.

Please take the opportunity to connect and share this video with your friends and family if you find it useful.

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *