1 unstable release

0.1.0 Jul 5, 2021

#7 in #inode

MIT license

43KB
1K SLoC

rust-squashfs

Docs

A pure rust implement of squashfs library.

Roadmap

  • Parse squashfs Superblock.
  • Parse fragment table.
  • Parse xattrs table.
  • Parse uid/gid lookup table.
  • Parse inode table.
  • Parse directory table.
  • Parse export table.
  • Multiple Compressors:
    • gzip algorithm.
    • lzma algorithm.
    • lzo algorithm.
    • xz algorithm.
    • lz4 algorithm.
    • zstd algorithm.

lib.rs:

squashfs layout

A squashfs filesystem consists of a maximum of nine parts, packed together on a byte alignment:

 ---------------
|  superblock   |
|---------------|
|  compression  |
|    options    |
|---------------|
|  datablocks   |
|  & fragments  |
|---------------|
|  inode table  |
|---------------|
|   directory   |
|     table     |
|---------------|
|   fragment    |
|    table      |
|---------------|
|    export     |
|    table      |
|---------------|
|    uid/gid    |
|  lookup table |
|---------------|
|     xattr     |
|     table     |
 ---------------

References

Dependencies

~4.5–6.5MB
~101K SLoC