#zip-archive #zip #archive #read-write #write-file

zip-merge

支持读取和写入 zip 文件的库。这是对 zip crate 的分支。

1 个不稳定版本

0.6.6 2023 年 7 月 23 日

#371 in 压缩


3 crate 中使用

MIT 许可协议

205KB
4K SLoC

zip-rs

Build Status Crates.io version Discord

文档

信息

Rust 的 zip 库,支持读取和写入简单的 ZIP 文件。

支持的压缩格式

  • 存储(即无压缩)
  • deflate
  • bzip2
  • zstd

当前不支持 ZIP 扩展

  • 加密
  • 多磁盘

用法

使用所有默认功能

[dependencies]
zip = "0.6"

不使用默认功能

[dependencies]
zip = { version = "0.6.6", default-features = false }

可用的功能有

  • aes-crypto:启用使用 AES 加密的文件的解密。支持 AE-1 和 AE-2 方法。
  • deflate:启用 deflate 压缩算法,这是 zip 文件的默认压缩算法。
  • bzip2:启用 BZip2 压缩算法。
  • time:启用使用 time crate 的功能。
  • zstd:启用 Zstandard 压缩算法。

默认启用所有这些。

MSRV

我们当前支持的最低 Rust 版本是 1.59.0。在添加功能时,我们将遵循以下准则

  • 我们将始终支持最新的四个次要 Rust 版本。这为您提供了 6 个月的编译器升级窗口。
  • 任何对 MSRV 的更改都将伴随一个 次要 版本号的增加
    • 在 crate 1.0 版本之前,这将是一个对 PATCH 版本号的更改。

示例

有关如何将文件写入 zip 的示例,请参阅 示例目录

  • 如何将文件写入 zip。
  • 如何将文件目录写入 zip(使用 walkdir)。
  • 如何解压 zip 文件。
  • 如何从 zip 中解压单个文件。
  • 如何从标准输入读取 zip。

模糊测试

模糊测试支持通过 cargo fuzz 实现。要安装 cargo fuzz

cargo install cargo-fuzz

列出模糊测试目标

cargo +nightly fuzz list

开始模糊测试 zip 解压

cargo +nightly fuzz run fuzz_read

依赖项

~7MB
~120K SLoC