Finishing touches
Added FastOptions as an alternative to DefaultOptions A few performance improvements A few bug fixes
This commit is contained in:
@@ -11,18 +11,27 @@ Currently has support for reading squashfs files and extracting files and folder
|
||||
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](https://github.com/distr1/distri/tree/master/internal/squashfs) as I referenced it to figure some things out (and double check others).
|
||||
|
||||
## FUSE
|
||||
|
||||
As of `v1.0`, FUSE capabilities has been moved to [a separate library](https://github.com/CalebQ42/squashfuse).
|
||||
|
||||
## 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.
|
||||
* No Xattr parsing.
|
||||
* Socket files are not extracted.
|
||||
* From my research, it seems like a socket file would be useless if it could be created. They are still exposed when fuse mounted.
|
||||
* From my research, it seems like a socket file would be useless if it could be created.
|
||||
* Fifo files are ignored on `darwin`
|
||||
|
||||
## Issues
|
||||
|
||||
* Significantly slower then `unsquashfs` when extracting folders (about 5 ~ 7 times slower on a ~100MB archive using zstd compression)
|
||||
* Significantly slower then `unsquashfs` when extracting folders
|
||||
* This seems to be related to above along with the general optimization of `unsquashfs` and it's compression libraries.
|
||||
* The larger the file's tree, the slower the extraction will be. Arch Linux's Live USB's airootfs.sfs takes ~35x longer for a full extraction.
|
||||
* Times seem to be largely dependent on file tree size and compression type.
|
||||
* My main testing image (~100MB) using Zstd takes about 6x longer.
|
||||
* An Arch Linux airootfs image (~780MB) using XZ compression with LZMA filters takes about 32x longer.
|
||||
* A Tensorflow docker image (~3.3GB) using Zstd takes about 12x longer.
|
||||
|
||||
Note: These numbers are using `FastOptions()`. `DefaultOptions()` takes about 2x longer.
|
||||
|
||||
## Recommendations on Usage
|
||||
|
||||
|
||||
Reference in New Issue
Block a user