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.