Caleb Gardner bc9adf8ade You can lookup an inode via a string path now
Removed DecompressCopy (as I wasn't using it)
Started work on fragments
2020-11-19 22:27:10 -06:00
2020-11-08 11:41:05 -06:00
2020-11-08 11:06:38 -06:00
2020-11-19 10:50:02 -06:00

GoSquashfs

A PURE Go library to read and write squashfs. Right now I'm focusing on unsquashing. Currently IS NOT a functional library. Some things that are currently public IS going to become private. Not very well documented either.

It's roughly based on distri's squashfs library

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.

Working

  • Reading the header
  • Reading data blocks (whether encrypted or not)
  • Reading inodes
  • Reading directories
  • Basic gzip compression (Shouldn't be too hard to implement other, but for right now, this works)
  • Listing all files via a string slice

Not Working (Yet). Roughly in order.

  • Give a list of files
    • In string & io.FileStat (?) form
  • Figure out fragments
  • Extracting files
    • from inodes.
    • from path.
    • from file info.
  • Reading the UID, GUID, Xatt, Compression Options, Export, and Fragment tables.
  • Implement other compression types (Should be relatively easy)
  • Squashing

Where I'm at.

  • Started work on fragments
S
Description
A Go library to read squashfs archives.
Readme MIT 15 MiB
2026-03-08 06:11:15 -05:00
Languages
Go 100%