NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #415 most downloaded on crates.io
Library to support the reading and writing of zip files.
Last release 1 months ago
11 Aug 2026
Release timing varies
gaps range from 8 days to 3 months
Most releases are documented
notes for 38 of the last 60 stable releases
26 versions withdrawn
withdrawn after publishing
12 years old
131 releases · first in 2014
add example for memory allocation
external attributes (#851)One column per quarter.
move types to zip format folder
[ breaking ] remove deprecated method *_zip64_comment methods
add compression not supported as enum error
change magic finder to stack buffer
remove zip64 comment and add zip64 extensible data sector
zip64 comment and add zip64 extensible data sector (#747)add a check for building benches
update tests to add big endian miri check
improve and fix extended timestamp extra field parsing
src/read/stream.rs (#731)zeroize_derive (#720)Support compressing bzip2 when feature bzip2-rs is enabled, since bzip2/bzip2-sys now supports it
bzip2-rs is enabled, since bzip2/bzip2-sys now supports it (#685)*(writer)* Allow getting underlying writer of ZipWriter
[breaking] Remove deprecated methods of DateTime
Increase MSRV to 1.88 and update dependencies
cleanup the benchmarks and Cargo.toml
unreserved and make the mapping of extra fields public (#616)Reject empty ZipCrypto password when encrypting files (can still be used when decrypting)
add read_zipfile_from_stream_with_compressed_size
display the underlying error in Display impl for ZipError
ZipError (#483)ZipArchive without reparsing (#485)getrandom dependency (#504)lzma-rust2 to at least 0.15.5 (#491)Removed lzma-static and xz-static feature flags, which were deprecated synonyms of lzma and xz. (#405, #425)
getrandom, hmac, pbkdf2, sha1, zeroize.lzma-static and xz-static feature flags, which were deprecated synonyms of lzma and xz. (#405, #425)SimpleFileOptions) const DEFAULT implementation (#474)set_auto_large_file() method to enable large-file data descriptor when necessary (#468)Add by_index_with_options(), which can be used to ignore encryption in a file's metadata (#439) and may be used for other file-specific overrides in t
FileOptions::add_extra_data is now generic and accepts any AsRef<[u8]>. (#435)panic when reading empty extended-timestamp field
Add legacy shrink/reduce/implode compression
AES metadata was not copied correctly in raw copy methods, which could corrupt the copied file.
Implement by_path*() methods on ZipArchive
Fixes an issue introduced by the swap from lzma-rs to liblzma
lzma-rs to liblzma (#407)Allow to read zip files with unsupported extended timestamps
Allow reading ZIP files where the central directory comes *before* the files
Move deprecated annotations to fix a Clippy warning
### <!-- 0 -->🚀 Features - Add support for PPMd
### <!-- 0 -->🚀 Features - Write ZIP file to stream
Add has_overlapping_files method
Allow extraction of Zip64 where "Version needed to extract" is higher than "Version made by"
[breaking] Drop deprecated deflate-miniz feature flag
avoid scanning through all local file headers while opening an archive
- No documented changes.
Add support for time::PrimitiveDateTime
deep_copy_file produced a mangled file header on big-endian platforms
deep_copy_file produced a mangled file header on big-endian platforms (#309)double as_ref().canonicalize()?
ZipArchive::root_dir and ZipArchive::extract_unwrapped_root_dir
Canonicalize output paths and symlink targets, and ensure they descend from the destination (CVE-2025-29787)
Change the inner structure of DateTime
DateTime (#267)rewrite the EOCD/EOCD64 detection to fix extreme performance regression
*(lzma)* fixed panic in case of invalid lzma stream
Expose ZipArchive::central_directory_start
ZipArchive::central_directory_start (#232)(#33) Rare combination of settings could lead to writing a corrupt archive with overlength extra data, and data_start locations when reading the archi
change invalid_state() return type to io::Result
fix(#215): Upgrade to deflate64 0.1.9
deep_copy_file no longer allows overwriting an existing file, to match the behavior of shallow_copy_filemerge_archive, abort_file and deep_copy_file. As well, we now return an error when a file is being copied to itself.Debug for ZipWriter even when it's not implemented for the inner writer's typefinish_into_readable() would corrupt the archive if the central directory had movedvalidate_extra_data() callok_or_abort_file, and inline when that fails borrow checkerok_or_abort_file, and inline when that fails borrow checkerdebug_assert_eq!Some date/time filters were previously unreliable (i.e. later-pass filters had no earliest-pass or latest-fail, and vice-versa)
deserialize for safetyNothing published for this version
lower default version to 4.5 and use the version-needed-to-extract where feasible.
Debug for ZipWriterSupport mutual conversion between DateTime and MS-DOS pair
DateTime and MS-DOS pairversion_needed is appliedversion_needed and version_made_by work with recently-merged changesImplement more traits for DateTime
fmt::Display for DateTimeDateTimelast_modified_time to Option<DateTime>from_msdos to from_msdos_unchecked, make it unsafe, and add try_from_msdos (#145)now_utc() as default only when writing, not readingMake deflate enable both default implementations
deflate enable both default implementationsimpl TryInto<NaiveDateTime> for DateTime to impl TryFrom<DateTime> for NaiveDateTime (#136)flate2/zlib-ngEliminate deprecation warning when --all-features implicitly enables the deprecated feature
is_symlink method--all-features implicitly enables the deprecated featureBox<str>, so generify is_dir to accept oneZipFileData::is_dir() methodRemove a window when an extracted directory might be unexpectedly listable and/or cdable by non-owners
cdable by non-ownersFailed to clear "writing_raw" before finishing a symlink, leading to dropped extra fields
Prevent panic when trying to read a file with an unsupported compression method
Stored the default compression method if Deflated isn't available, so that zip files are readable by as much software as possibleimpl Arbitrary for FileOptionsatomic moduleAdd method decompressed_size() so non-recursive ZIP bombs can be detected
decompressed_size() so non-recursive ZIP bombs can be detectedZipWriter::finish() consume the ZipWriter#![allow(unexpected_cfgs)] in nightlyBuild was failing with bzip2 enabled
normalized_components slightly sooner when not using itpath_to_string in cases where the path is already in the proper formatbzip2-rs can't replace bzip2 because it's decompress-onlyRare bug where find_and_parse would give up prematurely on detecting a false end-of-CDR header
deprecate deflate-miniz feature since it's now equivalent to deflate
Your coding agent can read these notes before it upgrades. Set up the MCP server →