3 releases
0.1.3 | Mar 21, 2024 |
---|---|
0.1.2 | Oct 31, 2022 |
0.1.1 | Oct 31, 2022 |
#1135 in Filesystem
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