3 releases

0.1.3 Mar 21, 2024
0.1.2 Oct 31, 2022
0.1.1 Oct 31, 2022

#1135 in Filesystem

Apache-2.0

210KB
5.5K SLoC

squashfs-ng-rs

This library wraps the squashfs-tools-ng libraries, providing tools for reading and writing SquashFS archives. It aims to provide safe high-level abstractions over the lower-level interface provided by the underlying library.

// Create an archive from a file hierarchy on disk
use squashfs::write::TreeProcessor;
TreeProcessor::new("archive.sfs")?.process("/path/to/directory")?;

// Read the contents of a file from an archive
use squashfs::read::Archive;
let archive = Archive::open("archive.sfs")?;
match archive.get("/etc/passwd")? {
    None => println!("File not present"),
    Some(node) => if let Data::File(file) = node.data()? {
        println!("{}", file.to_string()?);
    },
}

Squashfs-tools-ng must be installed to build or use this library -- for example, squashfs-tools-ng in the AUR for Arch Linux. The current commit is intended to be built against release v1.3.0.

See the API documentation for more.

Dependencies

~2–10MB
~115K SLoC