Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Zip implementation in Rust

License

NotificationsYou must be signed in to change notification settings

zip-rs/zip2

Repository files navigation

Build StatusCrates.io version

Documentation

Info

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

Features

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.

MSRV

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.

Examples

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

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

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp