/squashfs

A library to interact with Squashfs archives. Currently only has support for reading, but writing archives will probably come eventually.

Primary LanguageGoMIT LicenseMIT

squashfs (WIP)

PkgGoDev Go Report Card

A PURE Go library to read and write squashfs.

Currently has support for reading squashfs files and extracting files and folders.

Special thanks to https://dr-emann.github.io/squashfs/ for some VERY important information in an easy to understand format. Thanks also to distri's squashfs library as I referenced it to figure some things out (and double check others).

Limitations

  • No Xattr parsing. This is simply because I haven't done any research on it and how to apply these in a pure go way.

Performance

This library, decompressing the Firefox AppImage and using go tests, takes about twice as long as unsquashfs on my quad core laptop. (~1 second with the library and about half a second with unsquashfs).

My recents tests have shown the Firefox AppImage might be an outlier and this library might be considerably slower (4x ~ 6x time slower then unsquashfs)