Skip to content

Releases: matzefriedrich/zip-extensions-rs

v0.13.0

10 Dec 23:11
6ac8c02

Choose a tag to compare

Changes

  • Extension methods in ZipWriterExtensions can now be called directly on &mut ZipWriter.
  • Breaking change: Extension methods no longer consume the ZipWriter and no longer call finish() automatically. Callers must now invoke finish() explicitly when they are done writing. Top-level convenience functions continue to behave as before.

Full Changelog: v0.12.0...v0.13.0

v0.12.0

03 Dec 00:23
cb1dfab

Choose a tag to compare

This release delivers the most substantial upgrade to the crate in years, introducing both first-class .zipignore support and a more extensible, modular architecture for entry-handling during directory deflation. These improvements make it dramatically easier to customize how archives are built and to plug in new behaviors without fighting the internals.

Changes

  • You can now drop a .zipignore file into source directories and seamlessly exclude files and directories during archive creation. The new ZipIgnoreEntryHandler cleanly integrates ignore rules into the deflation pipeline, enabling consistent filtering without ad-hoc logic.

  • The crate has been restructured into clear deflate, inflate, and utilities modules. This significantly improves navigability, eases maintenance, and provides a cleaner foundation for future extension points.

  • ZipIgnoreEntryHandler and PreserveSymlinksHandler now support customizable inner handlers. This opens the API and enables advanced composition patterns—letting you chain, wrap, or override behaviors when handling entries during directory traversal and deflation.

This release lays the groundwork for more powerful features while maintaining high ergonomics. If you build custom processing logic or want finer-grained control over what goes into your ZIP archives, this is the version to upgrade to.

Full Changelog: v0.9.1...v0.12.0

v0.9.1

27 Nov 22:11
53357c9

Choose a tag to compare

This release improves archive creation and adds support for preserving symlinks. The core directory traversal logic now accepts pluggable handlers, enabling flexible behavior for different compression strategies.

Changes

  • Introduces the EntryHandler trait that allows customization of how filesystem entries are processed during archive creation. The existing file-handling logic is refactored into the DefaultEntryHandler.

  • A new PreserveSymlinksHandler implementation detects symbolic links and writes them to the ZIP archive as symlinks rather than following their targets. Use this feature with caution; refer to the security notes added to the documentation of the newly added zip_create_from_directory_preserve_symlinks_with_options function.

New Contributors

Full Changelog: v0.8.3...v0.9.1

v0.8.3

16 May 09:24
cd00f5e

Choose a tag to compare

Changes

Upgraded the zip crate from version 2.6 to 3.0 and updated related feature flags.

  • Removed obsolete features and added new ones such as nt-time and jiff-02
  • Adjusted the default features list accordingly.

v0.8.2

21 Apr 23:40
4abdd5d

Choose a tag to compare

Changes

  • This release updates the zip dependency from version 2.1 to 2.6, addressing compatibility issues.
  • The deprecated rand feature, no longer supported in newer versions, has been removed.
  • Fixes generic type issues related to the ZipFile type.

v0.8.1

26 Jul 09:24
51b2652

Choose a tag to compare

Changes

  • The crate now reflects the zip crate features, allowing consumers to configure the required zip features and give fine-grained control over binary size.

v0.8.0

02 Jun 20:31
f846ae9

Choose a tag to compare

Changes

  • Upgrades the zip package reference; uses the new zip2 version
  • Adds FileOptionExtension type argument to the zip_create_from_directory_with_options trait and implementation to address zip2 build issues
  • Removes the mut modifier from the ZipWriterExtensions to fix issues

v0.7.0

31 May 23:34
b5858a6

Choose a tag to compare

Changes

  • The create_from_directory_with_options method now supports per-item file options. This introduces a breaking change: instead of passing FileOptions directly, an Fn must be specified that will be called for each file and must return a FileOptions value.
  • Upgraded the zip dependency to version 0.6.6.

v0.6.2

03 Sep 19:42
e9c1ea6

Choose a tag to compare

Changes

  • Upgrades the zip dependency to version 0.6.2

v0.6.0

30 Nov 00:34
d1b02e9

Choose a tag to compare

Changes

  • Pass through Zip and Io errors
  • Replaces all instances of unwrap()
  • The read::ZipArchiveExtensions now returns ZipResult<PathBuf> instead of PathBuf as the underlying operation can return an error.
  • Adds tests; extends try_is_zip method to detect different archive formats.