- Notifications
You must be signed in to change notification settings - Fork73
zip-rs/zip2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A zip library for rust which supports reading and writing of simple ZIP files. Formerly hosted athttps://github.com/zip-rs/zip2.
Supported compression formats:
- stored (i.e. none)
- deflate
- deflate64 (decompression only)
- bzip2
- zstd
- lzma (decompression only)
- xz (decompression only)
- ppmd
Currently unsupported zip extensions:
- Multi-disk
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) ofthe deflate compression algorithm, which is the default for zip files. Supports compression quality 1..=264.deflate-flate2
: Combine this with anyflate2
feature flag that enables a back-end, to support deflate compressionat quality 1..=9.deflate-zopfli
: Enables deflating files with thezopfli
library (used when compression quality is 10..=264). Thisis the most effectivedeflate
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 thetime crate.chrono
: Enables converting last-modifiedzip::DateTime
to and fromchrono::NaiveDateTime
.jiff-02
: Enables converting last-modifiedzip::DateTime
to and fromjiff::civil::DateTime
.nt-time
: Enables returning timestamps stored in the NTFS extra field asnt_time::FileTime
.zstd
: Enables the Zstandard compression algorithm.
By defaultaes-crypto
,bzip2
,deflate
,deflate64
,lzma
,ppmd
,time
andzstd
are enabled.
Our current Minimum Supported Rust Version is1.82. When adding features,we will follow these guidelines:
- We will always support a minor Rust version that has been stable for at least 6 months.
- Any change to the MSRV will be accompanied with aminor version bump.
See theexamples directory for:
- How to write a file to a zip.
- How to write a directory of files to a zip (usingwalkdir).
- How to extract a zip file.
- How to extract a single file from a zip.
- How to read a zip from the standard input.
- How to append a directory to an existing archive
Fuzzing support is throughcargo 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.tomlcargo +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.tomlcargo +nightly afl run fuzz_write/target/debug/fuzz_write
About
Zip implementation in Rust
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.