2 个版本
0.6.4 | 2022 年 11 月 8 日 |
---|---|
0.6.3 | 2022 年 9 月 12 日 |
#600 in 压缩
24 个月下载量
用于 reveal-yaml
190KB
4K SLoC
包含 (Zip 文件,2KB) tests/data/invalid_offset.zip,(Zip 文件,1KB) tests/data/aes_archive.zip,(Zip 文件,1KB) tests/data/files_and_dirs.zip,(Zip 文件,1KB) tests/data/invalid_offset2.zip,(Zip 文件,1KB) tests/data/mimetype.zip
zip-rs
此 zip 分支不再维护,请使用上游 zip-rs/zip 代替
警告:此版本的 ZIP 库不会添加新功能,只有发现重大安全问题时才会更新。
信息
这是一个 Rust 的 zip 库,支持简单 ZIP 文件的读取和写入。
支持的压缩格式
- 存储(即无压缩)
- deflate
- bzip2
- zstd
目前不支持的 zip 扩展
- 加密
- 多磁盘
使用
使用所有默认功能
[dependencies]
zip = "0.6.2"
不使用默认功能
[dependencies]
zip = { version = "0.6.2", default-features = false }
可用的功能有
aes-crypto
:启用使用 AES 加密的文件的解密。支持 AE-1 和 AE-2 方法。deflate
:启用 deflate 压缩算法,这是 zip 文件默认的。bzip2
:启用 BZip2 压缩算法。time
:启用使用 time 库的功能。zstd
:启用 Zstandard 压缩算法。
所有这些都是默认启用的。
MSRV
我们当前的最低支持 Rust 版本是 1.57.0。当添加功能时,我们将遵循以下指南
- 我们将始终支持最新的四个次要 Rust 版本。这为您提供了一个 6 个月的窗口来升级您的编译器。
- 任何对 MSRV 的更改都将伴随 次级 版本的增加
- 当库是预 1.0 版时,这将是一个对修补版本的改变。
示例
请参阅示例目录以了解
- 如何将文件写入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
依赖项
~5MB
~82K SLoC