cargo zip 9.0.0
v9.0.0

4 hours ago

🚀 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)

Don't miss a new zip release

NewReleases is sending notifications on new releases.