Crates.io | zip |
lib.rs | zip |
version | 5.1.1 |
created_at | 2014-11-21 08:59:07.181279+00 |
updated_at | 2025-09-11 14:51:50.2155+00 |
description | Library to support the reading and writing of zip files. |
homepage | |
repository | https://github.com/zip-rs/zip2.git |
max_upload_size | |
id | 238 |
size | 578,136 |
A zip library for rust which supports reading and writing of simple ZIP files. Formerly hosted at https://github.com/zip-rs/zip2.
Supported compression formats:
Currently unsupported zip extensions:
The features available are:
aes-crypto
: Enables decryption of files which were encrypted with AES. Supports AE-1 and AE-2 methods.deflate
: Enables compressing and decompressing an unspecified implementation (that may change in future versions) of
the deflate compression algorithm, which is the default for zip files. Supports compression quality 1..=264.deflate-flate2
: Combine this with any flate2
feature flag that enables a back-end, to support deflate compression
at quality 1..=9.deflate-zopfli
: Enables deflating files with the zopfli
library (used when compression quality is 10..=264). This
is the most effective deflate
implementation available, but also among the slowest.deflate64
: Enables the deflate64 compression algorithm. Only decompression is supported.lzma
: Enables the LZMA compression algorithm. Only decompression is supported.bzip2
: Enables the BZip2 compression algorithm.ppmd
: Enables the PPMd compression algorithm.time
: Enables features using the time crate.chrono
: Enables converting last-modified zip::DateTime
to and from chrono::NaiveDateTime
.jiff-02
: Enables converting last-modified zip::DateTime
to and from jiff::civil::DateTime
.nt-time
: Enables returning timestamps stored in the NTFS extra field as nt_time::FileTime
.xz
: Enables the XZ compression algorithm.zstd
: Enables the Zstandard compression algorithm.By default aes-crypto
, bzip2
, deflate
, deflate64
, lzma
, ppmd
, time
, xz
and zstd
are enabled.
Our current Minimum Supported Rust Version is 1.83. When adding features, we will follow these guidelines:
See the examples directory for:
Fuzzing support is through cargo afl. To install cargo afl:
cargo install cargo-afl
To start fuzzing zip extraction:
cargo +nightly afl build --all-features --manifest-path fuzz_read/Cargo.toml
cargo +nightly afl run fuzz_read/target/debug/fuzz_read
To start fuzzing zip creation:
cargo +nightly afl build --all-features --manifest-path fuzz_write/Cargo.toml
cargo +nightly afl run fuzz_write/target/debug/fuzz_write