diff options
-rw-r--r-- | Cargo.toml | 8 | ||||
-rw-r--r-- | readme.md | 22 |
2 files changed, 28 insertions, 2 deletions
@@ -2,7 +2,13 @@ name = "squashfs-ng" version = "0.1.1" authors = ["Matthew Schauer <matthew.schauer@e10x.net>"] -edition = "2018" +edition = "2021" +description = "High-level Rust wrapper for squashfs-tools-ng" +readme = "readme.md" +documentation = "https://docs.rs/squashfs-ng" +repository = "https://github.com/showermat/squashfs-ng-rs" +license = "Apache-2.0" +categories = ["compression", "filesystem"] [build-dependencies] bindgen = "0.53.1" @@ -1 +1,21 @@ -==== UNDER CONSTRUCTION ==== +# squashfs-ng-rs + +This library wraps the [squashfs-tools-ng](https://github.com/AgentD/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](https://aur.archlinux.org/packages/squashfs-tools-ng) in the AUR for Arch Linux. + +**See [the API documentation](http://docs.rs/squashfs-ng) for more.** |