Save disk space - use compFUSEd to transparently compress filesystems

The Filesystem in Userspace (FUSE) project allows you install new filesystems without touching your Linux kernel. The filesystems run as regular programs, allowing them to use shared libraries and perform tasks that would be difficult from inside the Linux kernel. FUSE filesystems look just like regular filesystems to other applications on the machine. In this article I'll look at compFUSEd, which is a compressed FUSE filesystem. Using compFUSEd can save a significant amount of disk space for files that are highly compressible, such as many text documents and executable files.

CompFUSEd is designed as an overlay filesystem. This means that it takes an existing "base" filesystem and presents the same filesystem with some modifications. In this case the modification is to (de)compress the files. CompFUSEd takes the data that is written to it, compresses it, and passes it off to an underlying "base" filesystem for storage. When you read a file through compFUSEd, it will read that file from the base filesystem and decompress it before giving it to you. That means applications can use a compFUSEd filesystem without knowing anything about compression or even that the data is compressed when stored on disk.