Releases: matzefriedrich/zip-extensions-rs
v0.13.0
Changes
- Extension methods in
ZipWriterExtensionscan now be called directly on&mut ZipWriter. - Breaking change: Extension methods no longer consume the
ZipWriterand no longer callfinish()automatically. Callers must now invokefinish()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
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
.zipignorefile into source directories and seamlessly exclude files and directories during archive creation. The newZipIgnoreEntryHandlercleanly 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.
-
ZipIgnoreEntryHandlerandPreserveSymlinksHandlernow 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
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
EntryHandlertrait that allows customization of how filesystem entries are processed during archive creation. The existing file-handling logic is refactored into theDefaultEntryHandler. -
A new
PreserveSymlinksHandlerimplementation 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 addedzip_create_from_directory_preserve_symlinks_with_optionsfunction.
New Contributors
- @astelmashenko made their first contribution in #26
Full Changelog: v0.8.3...v0.9.1
v0.8.3
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-timeandjiff-02 - Adjusted the default features list accordingly.
v0.8.2
Changes
- This release updates the
zipdependency from version 2.1 to 2.6, addressing compatibility issues. - The deprecated
randfeature, no longer supported in newer versions, has been removed. - Fixes generic type issues related to the
ZipFiletype.
v0.8.1
Changes
- The crate now reflects the
zipcrate features, allowing consumers to configure the required zip features and give fine-grained control over binary size.
v0.8.0
Changes
- Upgrades the
zippackage reference; uses the new zip2 version - Adds
FileOptionExtensiontype argument to thezip_create_from_directory_with_optionstrait and implementation to address zip2 build issues - Removes the
mutmodifier from theZipWriterExtensionsto fix issues
v0.7.0
Changes
- The
create_from_directory_with_optionsmethod now supports per-item file options. This introduces a breaking change: instead of passingFileOptionsdirectly, anFnmust be specified that will be called for each file and must return aFileOptionsvalue. - Upgraded the zip dependency to version 0.6.6.
v0.6.2
Changes
- Upgrades the zip dependency to version 0.6.2
v0.6.0
Changes
- Pass through Zip and Io errors
- Replaces all instances of unwrap()
- The
read::ZipArchiveExtensionsnow returnsZipResult<PathBuf>instead ofPathBufas the underlying operation can return an error. - Adds tests; extends try_is_zip method to detect different archive formats.