Snaps vs Flatpaks in 2016

An overview of my thoughts on the Snappy and Flatpak formats.

In case you didn’t know, Snaps and Flatpaks are touted as the new universal application packaging formats for Linux. This post is a simple overview of my thoughts on each.

Snap

Currently, Canonical is pushing Snaps as the new packaging format. Snappy, the package manager is written in Python and Go. Currently, the package manager is licensed GPLv3.

For snaps, interfaces look good. It reminds me of OSGi and Android’s old sandboxing system. Overall, I like the intents-based privileges.

As far as application support goes, it looks like Mozilla is hopping aboard the bandwagon for snaps.

Flatpak

Currently, Flatpak is pushed by the Freedesktop Project. At first glance, it looks like the Flatpak developers are tied to Fedora. Moreover, Flatpak already has integration to SystemD, so it may be heavily integrated with SystemD in the near future. Currently, Flatpak is licensed LGPL.

The sandboxing for Flatpak looks fairly bare-bones, but functional. The portal system that Flatpak looks intents-based, but isn’t quite it.

Moreover, it appears that Flatpaks must be installed from a repository, so offline installation doesn’t seem possible (from first glance).

Flatpak is targeted towards desktops, so maybe it will be better for developers who wish to write cross-distribution desktop applications.

Conclusion

Considering that only recently I began to understand the need for a common packaging format, it’s hard for me to guess which format will come out on top. Both formats boast similar features, and have similar goals, so both will ultimately help the Linux ecosystem. I suppose now that it’s all about market share

My best guess is that snaps will win out, because you don’t have to add a repository to install snaps. The user is always right, after all.