github emmercm/igir v5.8.0

5 hours ago

Release Highlights

Feature: new patch types & subtypes added

Support has been added for:

  • BSDiff v4
  • Paper Mario Star Rod (PMSR) for Paper Mario N64 patches
  • Xdelta3 LZMA secondary compression

Refactor: many I/O and memory optimizations

@terafin has been helping with and inspiring many optimizations, resulting in (as measured on a MacBook Air M2):

  • Patches apply ~1.2x faster, and even as high as >10x for large patches
  • File header reading (ROM headers, signature detection, patch detection) is ~1.2x faster
  • Large files are read...
    • ~1.8x faster for unarchived files
    • ~1.2x faster for TorrentZip (DEFLATE level 9) zip entries
    • ~2.3x faster for RVZSTD (Zstd level 19) zip entries
    • ~1.7x faster for gzipped files (not .tar.gz)
  • Small files (<256KiB) are read ~1.2x faster
  • 7zip with LZMA is decompressed ~1.3x faster

See the full change list below for more details.

All changes

21 October 2026 - df2ff6f - v5.8.0 (#2594)
21 October 2026 - a9c058d - Refactor: use 7zip assembly LZMA decoder (#2592)
21 October 2026 - a091a26 - CI: rely on Dependabot for security updates (#2593)
20 October 2026 - ee299aa - Chore: Bump pillow from 12.3.0 to 13.0.0 in /docs (#2591)
20 October 2026 - f1f4623 - Chore: update dependency Pillow to v13 [SECURITY] (#2590)
20 October 2026 - 7a68980 - Chore: Bump vite from 8.3.0 to 8.3.4 (#2589)
20 October 2026 - 1ce8957 - Chore: update dependency eslint-plugin-unicorn to v78 (#2587)
20 October 2026 - d5cc364 - Refactor: bump TypeScript target to ES2024 (#2588)
20 October 2026 - 7cfa6f2 - Refactor: memory optimize path.resolve() (#2586)
20 October 2026 - fb742b3 - Refactor: limit file streams without a stream transform (#2585)
19 October 2026 - 633e637 - Chore: update Node.js to v26.12.0 (#2582)
19 October 2026 - 9b267f3 - Refactor: read and decompress in 1MiB chunks (#2559)
19 October 2026 - cf5cada - Chore: update dependency eslint-plugin-unicorn to v77 (#2557)
19 October 2026 - 79d1e50 - CI: fix native addon provenance false positives on main merges (#2583)
19 October 2026 - f52e2ee - CI: evaluate merge queue on push to main, don't run on forks (#2581)
18 October 2026 - ce7eba5 - Refactor: clamp I/O buffer/chunk sizes by file size, close file handles before "close" events (#2576)
16 October 2026 - b8c431a - Refactor: cache IOFile in pages, and chunk reading & writing when patching (#2572)
16 October 2026 - fe3f852 - Refactor: reduce I/O size when reading headers (#2574)
15 October 2026 - a796a0e - Fix: only parse .gz files as tar when they hold a tar (#2555)
14 October 2026 - 0b41562 - Feature: add Xdelta3 LZMA secondary compression support (#2570)
12 October 2026 - dbf12d6 - Chore: update Node.js to v26.11.1 (#2565)
10 October 2026 - 50f7760 - Chore: update dependency Bun to v1.4.3 (#2556)
9 October 2026 - f9f90f6 - Refactor: reader & writer semaphore consistency, optimization (#2554)
9 October 2026 - da0482d - Fix: settle MappableSemaphore.map() in chunks (#2546)
9 October 2026 - 5f9b12f - Chore: Bump handlebars from 4.7.9 to 4.7.10 (#2552)
9 October 2026 - 7e7bf0c - Refactor: don't create temp files when extracting ZeroSizeFile to IOFile (#2553)
9 October 2026 - 07ec781 - Refactor: skip copying to temp files for unarchived files when patching (#2551)
9 October 2026 - 3566c6d - CI: reduce the number of tests run with Wasm prebuilds (#2549)
9 October 2026 - c268067 - Refactor: use IOFile for BSDiff patch reading (#2550)
9 October 2026 - d6a1547 - Feature: add PMSR patch support (#2548)
8 October 2026 - 58ad571 - Feature: add BSDiff patch support (#2545)
8 October 2026 - e6eea84 - Refactor: rewrite patch tests & fixtures (#2544)
8 October 2026 - 84dfdd9 - Chore: update dolphin-tool to 2609a (#2542)
8 October 2026 - 7100b82 - Chore: update Scoop manifest to v5.7.2 (#2541)

Igir, and other open-source projects like it, are a labor of love. They wouldn't be nearly as meaningful without the community supporting them. Constructive feedback and general positivity will always be welcome. Be kind to others, and be kind to yourselves.
❤️ Christian

Don't miss a new igir release

NewReleases is sending notifications on new releases.