Home About Doxygen Download Git

SquashFS Tools NG

SquashFS is a highly compressed, read only file system often used as a root fs on embedded devices, live systems or simply as a compressed archive format.

Think of it as a .tar.gz that you can mount (or XZ, LZO, LZ4, ZSTD).

This project originally started out as a fork of squashfs-tools 4.3, after encountering some short comings and realizing that there have been no updates on the SourceForge site or mailing list for years.

Even before the first public release, the fork was replaced with a complete re-write after growing frustrated with the existing code base. For lack of a better name, and because the original appeared to be unmaintained at the time, the name squashfs-tools-ng was kept, although the published code base technically never had any connection to squashfs-tools.

Maintenance of the original squashfs-tools has since resumed, squashfs-tools version 4.4 was released and continues to be maintained in parallel. The utilities provided by squashfs-tools-ng offer alternative tooling and are intentionally named differently, so both packages can be installed side by side.

The actual guts of squashfs-tools-ng are encapsulated in a library with a generic API designed to make SquashFS available to other applications as an embeddable, extensible archive format (or to simply read, write or manipulate SquashFS file systems).

The utility programs are largely command line wrappers around the library. The following tools are provided:

The library and the tools that produce SquashFS images are designed to operate deterministically. Same input will produce byte-for-byte identical output. Failure to do so is treated as a critical bug.

Installing

A number of Linux distributions already offer squashfs-tools-ng through their package management system. Replogy maintains an up to date list:

Packaging status

Pre-compiled binary packages for Windows are available here.

Those packages contain the binaries for the tools, the SquashFS library and pre-compiled dependency libraries (zstd, lzo, lzma; others are built in).

The binary package does not contain any source code. The corresponding source code from which the 3rd party libraries have been built is also available for download at the above location.

The headers and import libraries to build applications that use libsquashfs are included. For convenience, the pre-compiled, 3rd party dependency libraries also come with headers and import libraries.

Version history

Date Release Remarks
2024-09-26 squashfs-tools-ng 1.3.2 is released Fix file prefix for manifest glob with explicit directory
2024-05-02 squashfs-tools-ng 1.3.1 is released Process xattr files if a manifest file is used
2024-03-11 squashfs-tools-ng 1.3.0 is released Improved Windows filename handling, tar2sqfs exclude option
2022-12-03 squashfs-tools-ng 1.2.0 is released Xattr manifest & manual file sort support
2022-12-03 squashfs-tools-ng 1.0.7 is released Final relase of the 1.0.x backport branch
2022-03-30 squashfs-tools-ng 1.1.4 is released Mostly Windows fixes, including character encoding
2021-08-15 squashfs-tools-ng 1.1.3 is released Fixed accidental 4GiB limit for tarballs
2021-08-15 squashfs-tools-ng 1.0.6 is released Contains backported fixes from 1.1.3 release
2021-06-25 squashfs-tools-ng 1.1.2 is released
2021-06-25 squashfs-tools-ng 1.0.5 is released Contains backported fixes from 1.1.2 release
2021-05-07 squashfs-tools-ng 1.1.1 is released Fixed reading parallel compressed tarballs
2021-03-28 squashfs-tools-ng 1.1.0 is released Support compressed tarballs, including bzip2
2021-01-23 squashfs-tools-ng 1.0.4 is released Force exact, byte-for-byte matches in deduplication
2020-11-05 squashfs-tools-ng 1.0.3 is released
2020-09-03 squashfs-tools-ng 1.0.2 is released
2020-08-03 squashfs-tools-ng 1.0.1 is released
2020-06-13 squashfs-tools-ng 1.0.0 is released First major relase with ABI frozen
2020-05-03 squashfs-tools-ng 0.9.1 is released
2020-03-30 squashfs-tools-ng 0.9.0 is released
2019-12-30 squashfs-tools-ng 0.8.0 is released Windows & BSD port
2019-10-08 squashfs-tools-ng 0.7.0 is released Public, LGPL licensed libsquashfs added
2019-08-27 squashfs-tools-ng 0.6.1 is released
2019-08-22 squashfs-tools-ng 0.6.0 is released sqfsdiff added
2019-07-28 squashfs-tools-ng 0.5.0 is released NFS export support, largefile support
2019-07-17 squashfs-tools-ng 0.4.2 is released
2019-07-07 squashfs-tools-ng 0.4.1 is released
2019-07-04 squashfs-tools-ng 0.4.0 is released
2019-06-30 squashfs-tools-ng 0.3.0 is released tar2sqfs and sqfs2tar added
2019-06-13 squashfs-tools-ng 0.2.0 is released
2019-06-09 squashfs-tools-ng 0.1.0 is released First working proof of concept

Documentation

The doxygen reference for the current release of libsquashfs is available here: libsquashfs API reference.

A writeup on the SquashFS on-disk format is also available.

Man pages are provided for the individual tools.

Getting the Source Code

Release tar balls are published in the pub directory.

The Git tree is hosted on git.infraroot.at as well as on GitHub.

Those two Git trees are kept in sync and issues & pull-requests on the GitHub pages are accepted.

Contact

Besides the issue tracker on GitHub, you can reach me via e-mail as goliath on infraroot.at.

There is currently no official mailing list. For the time being I’ll use the existing squashfs-tools mailing list for announcments, until I’m booted off.