compiling the zip2 crate to wasm with the goal of compiling to luau through wasynth
Find a file
Erica Marigold c51b2f59a3
Some checks failed
CI / Build and test : macOS-latest, msrv (push) Has been cancelled
CI / Build and test : macOS-latest, nightly (push) Has been cancelled
CI / Build and test : macOS-latest, stable (push) Has been cancelled
CI / Build and test : ubuntu-latest, msrv (push) Has been cancelled
CI / Build and test : ubuntu-latest, nightly (push) Has been cancelled
CI / Build and test : ubuntu-latest, stable (push) Has been cancelled
CI / Build and test : windows-latest, msrv (push) Has been cancelled
CI / Build and test : windows-latest, nightly (push) Has been cancelled
CI / Build and test : windows-latest, stable (push) Has been cancelled
CI / Build and test --all-features: macOS-latest, msrv (push) Has been cancelled
CI / Build and test --all-features: macOS-latest, nightly (push) Has been cancelled
CI / Build and test --all-features: macOS-latest, stable (push) Has been cancelled
CI / Build and test --all-features: ubuntu-latest, msrv (push) Has been cancelled
CI / Build and test --all-features: ubuntu-latest, nightly (push) Has been cancelled
CI / Build and test --all-features: ubuntu-latest, stable (push) Has been cancelled
CI / Build and test --all-features: windows-latest, msrv (push) Has been cancelled
CI / Build and test --all-features: windows-latest, nightly (push) Has been cancelled
CI / Build and test --all-features: windows-latest, stable (push) Has been cancelled
CI / Build and test --no-default-features: macOS-latest, msrv (push) Has been cancelled
CI / Build and test --no-default-features: macOS-latest, nightly (push) Has been cancelled
CI / Build and test --no-default-features: macOS-latest, stable (push) Has been cancelled
CI / Build and test --no-default-features: ubuntu-latest, msrv (push) Has been cancelled
CI / Build and test --no-default-features: ubuntu-latest, nightly (push) Has been cancelled
CI / Build and test --no-default-features: ubuntu-latest, stable (push) Has been cancelled
CI / Build and test --no-default-features: windows-latest, msrv (push) Has been cancelled
CI / Build and test --no-default-features: windows-latest, nightly (push) Has been cancelled
CI / Build and test --no-default-features: windows-latest, stable (push) Has been cancelled
CI / cargo_fmt (push) Has been cancelled
CI / check_minimal_versions (push) Has been cancelled
CI / style_and_docs () (push) Has been cancelled
CI / style_and_docs (--all-features) (push) Has been cancelled
CI / style_and_docs (--no-default-features) (push) Has been cancelled
DevSkim / DevSkim (push) Has been cancelled
Release / Release-plz (push) Has been cancelled
CI / fuzz_read (push) Has been cancelled
CI / fuzz_read_with_no_features (push) Has been cancelled
CI / fuzz_write (push) Has been cancelled
CI / fuzz_write_with_no_features (push) Has been cancelled
chore: include build script
2024-12-26 15:27:15 +00:00
.github deps: Relax dependency versions (#243) 2024-11-25 14:33:05 +00:00
benches perf: Faster cde rejection (#255) 2024-11-19 18:49:35 +00:00
bzip2-rs@15258feb0c feat: add wasm bindings 2024-12-26 15:22:35 +00:00
examples Merge branch 'master' into utf8_extra_fields 2024-06-02 17:52:04 -07:00
fuzz_read ci(fuzz): Switch to alf for faster fuzzing (#245) 2024-11-19 14:25:55 +00:00
fuzz_write ci(fuzz): Switch to alf for faster fuzzing (#245) 2024-11-19 14:25:55 +00:00
security-advisories in-source vulnerability tracking 2023-09-19 18:55:01 +01:00
src feat: add wasm bindings 2024-12-26 15:22:35 +00:00
tests fix: rewrite the EOCD/EOCD64 detection to fix extreme performance regression (#247) 2024-12-16 03:32:55 +00:00
wasynth@27f3498734 feat: add wasm bindings 2024-12-26 15:22:35 +00:00
.gitattributes test: Add .gitattributes to force test data files to be binary 2024-05-21 09:15:44 -07:00
.gitignore feat: add wasm bindings 2024-12-26 15:22:35 +00:00
.gitmodules feat: add wasm bindings 2024-12-26 15:22:35 +00:00
.whitesource Add .whitesource configuration file 2023-04-23 21:33:22 +00:00
build.sh chore: include build script 2024-12-26 15:27:15 +00:00
Cargo.toml feat: add wasm bindings 2024-12-26 15:22:35 +00:00
CHANGELOG.md chore: release v2.2.2 (#270) 2024-12-16 16:13:35 +00:00
cliff.toml doc: exclude doc updates from CHANGELOG 2024-04-22 19:18:15 -07:00
CODE_OF_CONDUCT.md doc: veeeery small fix to CoC 2022-01-23 17:35:39 +03:00
CONTRIBUTING.md Make CONTRIBUTING.md link to pull_request_template.md 2024-05-09 19:41:26 -07:00
LICENSE doc: Add some missing license information 2024-05-19 11:47:12 -07:00
pull_request_template.md docs: Update pull_request_template.md 2024-07-20 20:44:42 -07:00
README.md docs: Update list of supported features (#230) 2024-08-05 17:15:45 +00:00
release-plz.toml doc: exclude doc updates from CHANGELOG 2024-04-22 19:18:15 -07:00
test.ts feat: add wasm bindings 2024-12-26 15:22:35 +00:00

zip

Build Status Crates.io version

Documentation

Info

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:

  • stored (i.e. none)
  • deflate
  • deflate64 (decompression only)
  • bzip2
  • zstd
  • lzma (decompression only)
  • xz (decompression only)

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) 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.
  • time: Enables features using the time crate.
  • chrono: Enables converting last-modified zip::DateTime to and from chrono::NaiveDateTime.
  • zstd: Enables the Zstandard compression algorithm.

By default aes-crypto, bzip2, deflate, deflate64, lzma, time and zstd are enabled.

The following feature flags are deprecated:

  • deflate-miniz: Use flate2's default backend for compression. Currently the same as deflate.

MSRV

Our current Minimum Supported Rust Version is 1.73. When adding features, we will follow these guidelines:

  • We will always support the latest four minor Rust versions. This gives you a 6 month window to upgrade your compiler.
  • Any change to the MSRV will be accompanied with a minor version bump.

Examples

See the examples directory for:

  • How to write a file to a zip.
  • How to write a directory of files to a zip (using walkdir).
  • 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 through cargo fuzz. To install cargo fuzz:

cargo install cargo-fuzz

To list fuzz targets:

cargo +nightly fuzz list

To start fuzzing zip extraction:

cargo +nightly fuzz run fuzz_read

To start fuzzing zip creation:

cargo +nightly fuzz run fuzz_write