AppImage / AppImageKit

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
http://appimage.org
Other
8.78k stars 563 forks source link

appimagetool: option to use Zopfli for better gzip compression #805

Open shoogle opened 6 years ago

shoogle commented 6 years ago

Zopfli compression is basically GZIP on steroids. Zopfli produces compressed files that are 4-8% smaller than those produced by zlib, but which are still valid GZIP files that can be decompressed by existing tools.

The smaller size is achieved at the expense of a much longer compression time, meaning that Zopfli is probably not suitable for development or continuous builds that are not used by many people.

However, decompression remains just as fast as with normal GZIP algorithms, so Zopfli compression is ideal for release builds, which are compiled once and then downloaded many thousands of times.

Compression Level option for appimagetool

It would be good to be able to specify the compression level as well as the compression algorithm used by appimagetool for creating AppImages.

The compression level option should be algorithm-agnostic. Levels could be --lowest (or --worst / --fastest) ranging to --highest (or --best / --slowest).

Zopfli could either be offered as a separate algorithm to GZIP, or it could be implemented so that choosing the slowest setting with GZIP would actually use Zopfli compression.

TheAssassin commented 6 years ago

Does zopfli support parallelization? There's pigz for instance. It might compensate the additional computing time.

TheAssassin commented 6 years ago

@shoogle this is actually more relevant for squashfs-tools, which we use to create the squashfs image. If they supported it, we could allow using it from appimagetool.

probonopd commented 6 years ago

And possibly the kernel, too.

shoogle commented 6 years ago

@TheAssassin, fair enough.