3个版本

0.1.2 2024年6月18日
0.1.1 2024年6月7日
0.1.0 2024年6月7日

#329 in 压缩

MIT/Apache

17KB
320

mμnzip

mμnzipJUnzip 的Rust移植。

mμnzip 仅支持 STOREDEFLATE。有意省略了对 ZLIB 的支持。

功能

可迭代

let zi = munzip::IterableArchive::new(&mut input).unwrap();

for entry in zi {
    let mut entry = entry.unwrap();
    let filename = entry.filename();
    let buffer = entry.buffer().unwrap();
    write::write_file(&filename, &buffer).unwrap();
}

可搜索

let mut zi = munzip::SearchableArchive::new(&mut input).unwrap();

let filename = "munzip/Cargo.toml";
let cargo_toml = zi.by_name(filename).unwrap().unwrap();
write::write_file(&"Cargo.toml".to_owned(), &cargo_toml).unwrap();

为什么?

  • 为了体积小。
  • 为了有一个具有最小(2)(inflateadler32)依赖的简单解压库。
  • 为了娱乐和实践。

统计数据

方法 依赖项 大小 速度
mμnzip 2 419K 0.327秒
zip 27 491K 0.158秒
unzip 2 2.1M 0.286秒

结论

  • 是否非常快?不
  • 是否非常小?不
  • 功能非常强大?不

😐👍

注意

  • 'zip'指的是zip
  • 'zip'被设置为default-features = false, features = ["deflate"]
  • 'unzip'指的是debian的unzip
  • 'unzip'的大小包括libc和libbz2
  • 所有二进制文件都已去符号
  • 速度是通过在我的笔记本电脑上解压整个仓库的归档文件来衡量的。

依赖项

~81KB