#zip-archive #zip #archive #archive-format #lzma

zip-lzma

支持读取和写入zip文件的库。分叉以添加lzma解压缩支持。

1个不稳定版本

0.6.3 2023年11月11日

#375压缩

每月35次下载
2 crate中使用

MIT 许可证

180KB
3.5K SLoC

zip-rs

Build Status Crates.io version Discord

文档

警告:此版本的ZIP crate不会添加新功能,只有在发现重大安全问题时才会更新。

信息

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

支持的压缩格式

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

目前不支持的zip扩展

  • 加密
  • 多盘

用法

使用所有默认功能

[dependencies]
zip = "0.6.3"

不使用默认功能

[dependencies]
zip = { version = "0.6.3", 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(使用walkdir)。
  • 如何提取zip文件。
  • 如何从zip中提取单个文件。
  • 如何从标准输入读取zip。

模糊测试

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

cargo install cargo-fuzz

列出模糊测试目标

cargo +nightly fuzz list

开始模糊测试zip提取

cargo +nightly fuzz run fuzz_read

依赖项

~5MB
~84K SLoC