#archive #read-write #squashfs #high-level #wrapper #interface #squash-fs

squashfs-ng

为 squashfs-tools-ng 提供的高级 Rust 包装器

3 个版本

0.1.3 2024 年 3 月 21 日
0.1.2 2022 年 10 月 31 日
0.1.1 2022 年 10 月 31 日

#800文件系统

每月 31 次下载

Apache-2.0

210KB
5.5K SLoC

squashfs-ng-rs

此库包装了 squashfs-tools-ng 库,提供了读取和写入 SquashFS 存档的工具。它旨在在上层库提供的低级接口之上提供安全的抽象。

// 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,例如,在 Arch Linux 的 AUR 中的 squashfs-tools-ng。当前的提交是为了构建针对 v1.3.0 版本的发布。

有关更多信息,请参阅 API 文档

依赖项

~2–11MB
~117K SLoC