Skip to content

Update Rust crate zip to v9 - #6

Merged
trypsynth merged 1 commit into
masterfrom
renovate/major-cargo-dependencies
Nov 10, 2026
Merged

trypsynth merged 1 commit into
masterfrom
renovate/major-cargo-dependencies

Conversation

@renovate

@renovate renovate Bot commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
zip dependencies major 8.6.0 → 9.5.0

Release Notes

zip-rs/zip2 (zip)

v9.5.0

Compare Source

🚀 Features
  • ExtractOptions root_dir filter (#​1279)

v9.4.2

Compare Source

🚜 Refactor
  • Replace std::num and std::cmp with core::num and core::cmp (#​1276)
⚙️ Miscellaneous Tasks
  • apply cargo fmt to security patches (#​1275)

v9.4.1

Compare Source

🐛 Bug Fixes
🚜 Refactor
  • Use boxed slices instead of Vec when growability isn't needed (#​1271)

v9.4.0

Compare Source

🚀 Features
  • Implement ZipIterable::files_with_reader (#​1267)

v9.3.0

Compare Source

🚀 Features
  • (write) implement TryFrom for PreparedZipFile (#​1258)

v9.2.3

Compare Source

🐛 Bug Fixes
  • (ci) resolve typos false-positive, fix upath smuggling test, and add Turkish tests (#​1256)
🚜 Refactor
  • Replace std:: with core:: where possible (#​1253)

v9.2.2

Compare Source

🚜 Refactor
  • Eliminate the use of SwitchWriterFunction (a Box<dyn FnOnce<_>>) (#​1235)
⚙️ Miscellaneous Tasks
  • Fix build error (can't convert getrandom::Error to io::Error without getrandom/std) (#​1240)

v9.2.1

Compare Source

🚜 Refactor
  • Eliminate the use of SwitchWriterFunction (a Box<dyn FnOnce<_>>) (#​1235)
⚙️ Miscellaneous Tasks
  • Fix build error (can't convert getrandom::Error to io::Error without getrandom/std) (#​1240)

v9.2.0

Compare Source

🚀 Features
  • (write) add parallel compression and batch appending for ZipWriter with Rayon (#​1225)
  • add index_for_name_raw (#​1210)
  • (extract) multi-threaded parallel extraction engine and safe extent pre-allocation (#​1207)
  • (read) add index-free iterable ZIP reader (#​1218)
🐛 Bug Fixes
  • by_name().get_metadata() and by_index().get_metadata() now succeed even when compression method is unsupported (#​1228)
  • (read) keep ZipIterable::len at the central directory entry count (#​1221)
  • (fuzz) count reopens in copy bases when tracking comment shrink (#​1222)
⚡ Performance
  • (read) eliminate redundant pre-scan I/O and atomic contention in par_extract (#​1227)
  • (read) eliminate redundant clone and heap allocations in safe_prepare_path (#​1224)

v9.1.3

Compare Source

🚀 Features
  • (extra_fields) support 0xd935 Android ZIP alignment extra field (#​928) (#​1198)
🐛 Bug Fixes
  • (format) record correct 32-bit EOCD offset in ZIP64 archives (#​1205)
  • (aes) wipe AES round keys when the cipher is dropped (#​1204)
  • (fuzz) treat a comment change in a merged sub-writer as non-streamable (#​1188)
  • (aes) zeroize AesCtrZipKeyStream buffer and counter on drop (#​1196)
  • (extract) prevent symlink-follow truncation via FILE_FLAG_OPEN_REPARSE_POINT (#​1195)
  • (write) drop a stale Unicode Path extra field when copying an entry (#​1187)
  • (write) don't leave a stale tail that completes a fake EOCD in the comment (#​1186)
  • (write) reject deflate levels below 10 when only zopfli is enabled (#​1182)
⚡ Performance
  • (read) accelerate extraction with 64 KiB reusable buffer (#​1206)
  • (aes) encrypt AES-CTR counter blocks in batches (#​1203)
  • (read) eliminate double allocation by populating IndexMap directly (#​1200)
  • (read) preallocate files vector in read_central_header (#​1199)

v9.1.2

Compare Source

🐛 Bug Fixes
  • preserve the file kind (normal/directory/symlink) in raw_copy_file_touch (#​1179)
  • (write) reject a Unicode Path extra field that would rename the entry (#​1177)
  • (extract) prevent following symbolic links during file creation (#​1116)

v9.1.1

Compare Source

🐛 Bug Fixes
  • store the raw count instead of a bool (#​1174)
  • preserve extra fields in raw_copy_file_touch (#​1172)
  • (write) flag a non-ASCII file comment as UTF-8 when writing it (#​1160)
  • (write) reject duplicate names in merge_archive, blank stale footers, and add opt-in extra-field validation (#​1159)

v9.1.0

Compare Source

🚀 Features
  • (read) enforce header consistency on extract_with_options and expose duplicate name detection (#​1109)
  • Add borrowing inner method to reader wrappers (#​1050)
  • add with_size_limit to ExtractOptions to limit total declared uncompressed size (#​1019)
  • add file_names_raw iterator (#​1082)
🐛 Bug Fixes
  • raw_copy_file keeps an entry's name bytes and UTF-8 flag as stored (#​1124)
  • (write) prevent seek panic on streaming writer with comment (#​1151)
  • Accept bounded central directory digital signature record when enforcing header consistency in ZipStreamReader (#​1134)
  • apply unix permissions at creation (#​1104)
  • raw_copy_file should work with any extra fields (#​1120)
  • (read) avoid full-file forward scans and redundant allocations in central directory (#​1142)
  • don't enable typed-path's default std feature (#​1112)
  • ZIP64 size fields were being deep-copied incorrectly (via Copilot gpt-6-luna) (#​1107)
  • resolve decoded CP437 member names (#​1080) (#​1085)
  • Debug assertion doesn't account for length of archive comment (#​1097)
🚜 Refactor
⚡ Performance
  • (write) reuse the DEFLATE compressor across entries (#​1119)
⚙️ Miscellaneous Tasks
  • Fix reference to nonexistent variable on #[cfg(not(any(unix, windows)))] (#​1138)
  • target lzma-rust2 v0.23 (#​1096)
Bench

v9.0.5

Compare Source

🐛 Bug Fixes
  • use mode_t for fchmodat's mode, which is u32 on NetBSD and OpenBSD (#​1076)
  • (write) prevent duplicate 0x9901 AES extra field in raw_copy_file (#​1078)
⚙️ Miscellaneous Tasks
  • Enable release-plz on backport branches in future (#​1079)

v9.0.4

Compare Source

🐛 Bug Fixes
  • enclosed_name rejects a separator inside one verbatim path component (#​1066)
  • return Ok(None) when read_zipfile_from_stream is called on an empty archive (#​1063)
⚙️ Miscellaneous Tasks
  • Revert impl Copy for Zip64CentralDirectoryEndLocator due to failing semver check, fix CI where most Miri tests weren't running, and other fixes so other PRs can pass CI (#​1065)
  • update lzma-rust2 and ppmd-rust dependencies (#​1060)

v9.0.3

Compare Source

🐛 Bug Fixes
  • Preserve directories' read-only status when extracting on non-Unix systems (#​1054)

v9.0.2

Compare Source

🐛 Bug Fixes
  • additional bug fixes for symlink extraction

v9.0.1

Compare Source

🐛 Bug Fixes
  • set_permissions was still following symlinks in non-streaming extraction (#​1038)
  • two arithmetic overflows in the implode decoder (#​1028)
  • reject an empty archive whose central directory offset is past the EOCD (#​1025)
  • don't panic when two entries extract to the same path (#​1023)
  • fail reads that exceed the declared uncompressed size (#​1022)
  • shrink decoder skipped LZW code 8191 (#​1029)
  • write only the sentinel-marked values in a central ZIP64 field (#​1027)

v9.0.0

Compare Source

🚀 Features
  • add ZipFileBuilder for parallelizing compression (#​911)
  • add method by_index_with_data_descriptor (#​994)
  • add len, is_empty and entry to ZipArchiveMetadata (#​1015)
  • read data descriptor from binary (#​990)
  • add comment and test for ZipStreamReader and symlinks (#​985)
  • (write) add ZipWriter::hide_file for in-place entry deletion (#​924)
  • add compression (#​948)
  • add test to in place modification (#​945)
  • move CustomExtraField to own file (#​941)
  • add a test on enum size (#​939)
  • use ZipFileEntry instead of ZipStreamFileMetadata (#​935)
  • add ZipFileEntry with no Reader (#​933)
  • change aes_mode to aes_settings() in ZipFileData (#​925)
  • cleanup and harmonize extra fields (#​923)
  • Rewrite zip64 extra (#​913)
🐛 Bug Fixes
  • reading an empty AES entry again at EOF returns Ok(0) (#​1024)
  • reject ZIP64 sizes that overflow u64 when computing data end offsets (#​1036)
  • apply central directory metadata in ZipStreamReader, only to written entries (#​1030)
  • consume the whole extended timestamp field in the central header (#​1016)
  • parse the central header of the extended timestamp (#​1002)
  • don't pre-allocate the declared size in the legacy decoders (#​991)
  • Symlink with very large declared size could lead to out-of-memory panic (#​984)
  • copy extra fields in raw_copy_file (#​955) (#​982)
  • add unix_mode when copy_raw_file (#​981)
  • rewrite documentation of add_symlink_from_path (#​979)
  • ignore a ZIP64 extra field that no sentinel asked for (#​962)
  • do not set data descriptor if directory (#​973)
  • expose flags function for easier access (#​972)
  • preserve unix permission in raw_copy_file (#​956)
  • clippy warning on nightly (#​960)
  • remove extra alloc used to copy (#​938)
  • lazy allocation on error case (#​937)
  • fix data alignment (#​929)
🚜 Refactor
  • move extract to own file (#​1009)
  • cleanup permissions related code (#​961)
  • remove feature gate (#​949)
  • create ZipFileFlags to wrap flags (#​947)
  • remove unused trait (#​946)
  • access crate::format with zip::unstable::format (#​944)
  • harmonize functions to format/functions.rs (#​943)
  • rewrite make_reader() function (#​936)
  • simplify initialize_local_block (#​934)
  • move write options to write/options.rs (#​931)
  • move spec to format (#​932)
  • move Magic to format (#​930)
  • [breaking] Remove ZipFileData::extra_data_start field that is never read (#​926)
⚙️ Miscellaneous Tasks
  • Fix high-level symlink extraction logic, disable some tests in miri, and fix some typos (#​1035)
Fix
  • some permissions tests can only run on Unix (#​1000)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 6am"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@trypsynth
trypsynth merged commit 435764b into master Nov 10, 2026
5 checks passed
@renovate
renovate Bot deleted the renovate/major-cargo-dependencies branch November 10, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant