Categorygithub.com/sylabs/squashfs
modulepackage
0.6.1
Repository: https://github.com/sylabs/squashfs.git
Documentation: pkg.go.dev

# README

sylabs/squashfs (WIP)

PkgGoDev Go Report Card

This is a fork of CalebQ42/squashfs for the purpose of maintaing a package that removes the lzo dependency, so that it does not contain GPL code.

Branches

  • remove-lzo - main from CalebQ42/squashfs with LZO support removed.
  • remove-lzo-vX.Y.Z - vX.Y.Z from CalebQ42/squashfs with LZO support removed.

Tags

  • vX.Y.Z - vX.Y.Z from CalebQ42/squashfs with LZO support removed.

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).

TODO

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)

# Functions

DefaultOptions is the default ExtractionOptions.
Creates a new squashfs.Reader from the given io.ReaderAt.
Creates a new squashfs.Reader from the given io.Reader.

# Constants

The types of compression supported by squashfs.
The types of compression supported by squashfs.
The types of compression supported by squashfs.
The types of compression supported by squashfs.
The types of compression supported by squashfs.
The types of compression supported by squashfs.

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

ExtractionOptions are available options on how to extract.
File represents a file inside a squashfs archive.
FS is a fs.FS representation of a squashfs directory.Implements fs.GlobFS, fs.ReadDirFS, fs.ReadFileFS, fs.StatFS, and fs.SubFS.
No description provided by the author