Skip to content

Releases: CalebQ42/squashfs

Easy Extraction

10 Dec 14:56
Compare
Choose a tag to compare
Easy Extraction Pre-release
Pre-release

Added Reader.ExtractTo so you can easily extract everything easily.

Compression types

09 Dec 08:01
Compare
Choose a tag to compare
Compression types Pre-release
Pre-release

I've done my best to implement all compression types.

  • LZO is NOT supported right now. Looking at the couple of LZO libraries available for go, none seemed to fit well (from what I could see). I may try to get this implemented later on.
  • All other compression types, without special options, should work fine.
  • Compression options will be a bit hit or miss. Some (such as compression level) have no bearing on reading, while some (such as XZ filters) breaks reading completely.
    • For right now, if I KNOW an option isn't supported, you'll get an error telling you so.
    • If a compression option is set that I haven't tested, ErrOptions will be returned, ALONG WITH the reader.

Dereferenced Symlinks

08 Dec 15:52
Compare
Choose a tag to compare
Dereferenced Symlinks Pre-release
Pre-release
  • File.ExtractSymlink will dereference all symlink's if where it's pointing to is inside the archive.

Extracting!

07 Dec 17:03
Compare
Choose a tag to compare
Extracting! Pre-release
Pre-release
  • You can now do File.ExtractTo and it will try to extract the file (or folder) to the specified path. This allows for folder extraction and it also sets the proper permissions.
    • Will probably add a Reader.ExtractTo function at some point for ease of use, but for right now you can just run ExtractTo from the root folder.
  • This brings extraction, nearly, to a "complete enough" point. I still want to add the rest of compression types, but otherwise the reading api shouldn't have any major changes. There are some things that are not supported, and might not be supported when v1 of the library is launched.
    • Extra Attributes (Xattr). Frankly I need to do a bunch more research on WHAT these actually are and how to apply them to the files. Not a high priority unless I get requests for it.
    • Compressor Options. From what I've seen, the Go libraries for compression and decompression don't have these options. I'll probably eventually implement what I can, and give you a warning if it's unsupported.

From here, v0.3.1 will probably implement the rest of the compression types (and what compression options I can), and I'll start focusing my attention on squashing.

Symlinking!

28 Nov 08:40
Compare
Choose a tag to compare
Symlinking! Pre-release
Pre-release
  • Now featuring some symlink support.
    • If a squashfs.File is a symlink (which you can find out with the IsSymlink function) you can get the path it's symlinking to, and get the file it's symlinking to, if said file is inside the archive.
  • You can now get a file from a path from a squashfs.File directory.

Files!

27 Nov 06:40
Compare
Choose a tag to compare
Files! Pre-release
Pre-release

Reading from a squashfs now comes in the form of squashfs.File. This gives more information about the file or folder your interacting with, and provides an io.Reader interface.

What this means is you can easily find the files you need, either by getting a list of ALL files and folder, through a string path, or by searching for one with a function.

Renamed release

25 Nov 16:54
Compare
Choose a tag to compare
Renamed release Pre-release
Pre-release

Renamed the library to squashfs so that the library is easier to use.

Basic Beginnings

25 Nov 14:45
Compare
Choose a tag to compare
Basic Beginnings Pre-release
Pre-release

This is the very first version that's actually functional! Right now all it can do is list ALL files and folders in a squashfs, and provide a reader (io.Reader) to read files from inside the squashfs.

  • ONLY supports gzip compression (or no compression) WITHOUT any special options (certain options MAY still work, but not promises).