164

I have been getting this question lately from students and although I have a lot of information to offer, I have not found a source that I can point people to where they can read an update answer (I have found a lot of misinformation and obsolete information). So, some of the questions I have for package formats like snap, appimage, flatpak and others in this evolution of universal packaging systems are:

  • Who created the package format?
  • What features does it offer?
  • What features are unique to it? (That the others do not yet have)
  • Who supports it?
  • What Distributions use it?
  • What focus does the package have? (For Desktop, Clouds, Mobile, etc..)
  • Which are more actively developed?
120

Here is a long tabular comparison of AppImage vs. Snap vs. Flatpak features. It is from the AppImage Wiki on GitHub:

Note that this comparison is mainly from the perspective of AppImage, although it tries to represent each project fairly.

AppImage vs. Snap vs. Flatpack Comparison

17
  • 71
    I think it's worth pointing out that this chart is built from an AppImage perspective. Meaning, the default feature set is AppImage's feature set, and the others are compared to its features. That gives a biased edge to AppImage. It's also somewhat out of date. For instance, Snap added theme support this fall. – Dan Apr 16 '18 at 15:16
  • 15
    I'm not sure how you can say that @Kurt. Take a look at the "Objectives" section, as an example. It shows AppImage's objectives exclusively, as if none of the other projects have any objectives. As if only the objectives that AppImage has matter. – Dan May 3 '18 at 18:16
  • 9
    I do get your point - I could edit the wiki. However, your answer is a giant image that will presumably stay as-is in perpetuity, even as the wiki changes. I think the bias is worth mention in context to your answer for future Ask Ubuntu readers. – Dan Jul 6 '18 at 19:14
  • 3
    @Dan: I edited the answer on July 4th to insert an updated version of the screenshot from the website (exactly in order to include some modifications which happened to the wiki). Where is the problem for you in editing the original Wiki, creating a new screenshot and then suggesting a modification of this answer with the new screenshot? – Kurt Pfeifle Jul 7 '18 at 10:11
  • 6
    What's missing here is the fundamental reason why Flatpaks and Snaps exist, even though AppImage existed long before. With AppImages, it's up to the developer to make sure apps work under all conditions. With Flatpaks (and Snaps too, I believe), there are underlying runtimes that mirror the state of the developer's machine, ensuring that the app works on distros with different setups. – Tin Man May 4 '19 at 19:22
75

Snaps were created by Canonical for Ubuntu. The main advantages of snaps are:

  • Independence on dependencies - all libraries and dependencies are included in the package. This also allows to have more versions of the same program.
  • Sandboxing - snaps are using modified AppArmor to sandbox the applications
  • Delta updates - snaps should also allow delta updates

The main drawback of snaps is that software can only use libraries included in its package. This is a potential security risk as the author of the package needs to keep all libraries patched and updated.

Snaps can currently run in Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS, and Gentoo. They are also used in Ubuntu Touch. They are designed for desktops, servers, phones, IoT, and routers.

Flatpak has the same advantages as snaps. However, it uses Namespaces instead of AppArmour for sandboxing. The main difference is that Flatpaks can both use libraries included in the package and shared libraries from another Flatpak.

The developer of Flatpak is the Red Hat employee Alexander Larsson. Flatpak software is currently available in Arch Linux, Debian, Fedora, Mageia, Solus and Ubuntu. It is focused on desktops only.

AppImages are developed by Simon Peter. As in snaps or Flatpak, the package includes all libraries necessary to run the program. AppImage programs are not sandboxed and they don't require root rights to run. According to website of the project, AppImages should run on Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux and Ubuntu.

10
  • 3
    Solus has announced support for flatpak in Jan 2017 – Anthon May 28 '17 at 6:40
  • 13
    They all should have just built upon appimage. Instead of re-inventing the same ideology and introducing fragmentation and confusions. Also note that since these portable packages have all the libraries, they will be considerably heavier in size compared to an app using shared libraries installed via apt or .deb. If you must know which is more popular, flatpak is currently beating snaps. – answerSeeker Jun 5 '17 at 5:22
  • 4
    @answerSeeker: your comment about the portable packages being "considerably heavier in size compared to an app using shared libraries installed via apt or .deb" isn't necessarily backed up by the real life facts. AppImages and Snaps are compressed into SquashFS images (not true for Flatpak). They are never extracted onto disk, not even during run-time. AppImages, when running, self-mount themselves onto a temporarily created mountpoint in /tmp/.mount_<random-chars> and run from there -- still compressed! See the numbers for the LibreOffice example in screenshot of my answer below... – Kurt Pfeifle Feb 23 '18 at 15:01
  • 3
    @PabloBianchi: newer AppImages (of the more recent 'type 2' variety) can have a builtin update mechanism. This downloads a binary delta diff from the original AppImage location, saving in download size and time, once a new version is available and after the user indicated s/he wanted it. The tools appimageupdatetool (CLI) and AppImageUpdate-Qt (GUI) help with this. – Kurt Pfeifle Feb 23 '18 at 15:06
  • 2
    flatpack was actually introduced a few months before snap, for those wondering who invented what when. It appears they were invented simultaneously for different reasons. Flatpack was not a new technology, my team implemented something similar in the 00's using the same technique (namespaces) but I couldn't get management to open source it so that company died. Namespaces exist everywhere, snap with its dependency on AppArmor is harder to move to other distributions. – eric.green Dec 11 '20 at 17:55
15

I have found an interesting performance (CPU+Memory) comparison for these packaging systems.

VLC

VLC

LibreOffice enter image description here

Gimp

enter image description here

Source: https://verummeum.com/portable-package-formats/

2
  • 4
    This would be much easier to read if the scales were uniform. – problemofficer Mar 9 at 16:50
  • Unluckily in my source only these plctures were available. – pktiuk Mar 9 at 22:40
12

do not forgot the main thing, is it Open source ?

AppImage

Open source Client ✅ Yes
Open source Server ✅ Yes

Snap

Open source Client ✅ Yes
Open source Server ❌ No

Flatpak

Open source Client ✅ Yes
Open source Server ✅ Yes

1
  • The snap store is not open-source, there were some attempted implementations but no current working ones. Please see forum.snapcraft.io/t/external-repositories/1760 for the very lengthy discussion on this general topic regarding the server side of desktop snap apps. – Ads20000 Jan 28 at 22:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.