Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: zip-rs/zip2
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v8.3.1
Choose a base ref
...
head repository: zip-rs/zip2
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v8.4.0
Choose a head ref
  • 6 commits
  • 14 files changed
  • 4 contributors

Commits on Mar 22, 2026

  1. perf: skip BufReader for Stored files in make_reader (#739)

    * perf: skip BufReader for Stored files in make_reader
    
    Problem: by_index() allocates an 8 KiB BufReader and a Decompressor
    for every entry, even CompressionMethod::Stored where decompression
    is a no-op pass-through. For a 23K-entry JAR (mostly Stored files),
    this means 2 heap allocations per call totaling 8,632 bytes each —
    47,262 allocations just to iterate and drop.
    
    Fix: add a ZipFileReader::Stored variant that wraps CryptoReader
    directly in Crc32Reader, bypassing both BufReader and Decompressor.
    
    This required adding a Debug impl for CryptoReader since the new
    Stored variant needs it for the derive(Debug) on ZipFileReader.
    
    Measured on bazel.jar (23,631 Stored entries):
      by_index() allocations:
        before: 2.0 allocs/entry, 8,632 bytes alloc'd each
        after:  1.0 allocs/entry,   256 bytes alloc'd each
      cargo bench read_entry (1 MiB Stored file):
        before: 106,657 ns/iter (9,831 MB/s)
        after:  101,276 ns/iter (10,353 MB/s, +5.3%)
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    
    * move Debug defition after type and add debug information for Aes
    
    * cargo fmt
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
    Co-authored-by: n4n5 <[email protected]>
    3 people authored Mar 22, 2026
    Configuration menu
    Copy the full SHA
    c2999bc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f5813c5 View commit details
    Browse the repository at this point in the history
  3. refactor: split part of read.rs for code readability (#744)

    * refactor: part of read.rs
    
    * add reader mod
    
    * move to zip_archive
    
    * move
    
    * re-add imports
    
    * move tests
    
    * move again
    
    * revert fmt
    
    * fmt
    
    * fix tests
    
    * move aes info
    
    * move function
    
    * move from reader.rs to readers.rs
    
    * self contained test
    
    * move more reader to readers
    
    * typos
    
    * fmt and fix CI
    
    * use macros
    
    * cargo fmt
    
    * cargo fmt
    Its-Just-Nans authored Mar 22, 2026
    Configuration menu
    Copy the full SHA
    bae095b View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2026

  1. chore: move pull request template to correct folder (#749)

    * chore: move template to correct place
    
    * fix: edit template
    Its-Just-Nans authored Mar 23, 2026
    Configuration menu
    Copy the full SHA
    abc0424 View commit details
    Browse the repository at this point in the history
  2. feat: add a check for building benches (#748)

    * feat: add a check for building benches
    
    * Trigger CI
    Its-Just-Nans authored Mar 23, 2026
    Configuration menu
    Copy the full SHA
    f5e7fd5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a73f55b View commit details
    Browse the repository at this point in the history
Loading