Skip to content

release_2.8.0

Latest

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 05 Aug 03:06
· 3 commits to master since this release

SimpleZipDrive 2.8.0 — Release Notes

Released: 2026-08-04

This release fixes a major memory/performance issue in the memory-cache mode (GitHub issue #10), adds comic-book archive support, aligns the WinFsp variant with the stable WinFsp 2.1 driver, and reduces noise in the bug-report pipeline.


Fixed: High memory usage & poor performance with the memory cache (issue #10)

Mounting an archive and running a large file (e.g. a game executable) from the virtual drive could inflate memory usage to multi-GB (up to ~13 GB in reports) and freeze the machine — while disk-cache mode used only ~200 MB.

Root cause: the memory cache decompressed the entire file into a fresh buffer on every open, and one read path re-decompressed the whole file per read (paging/memory-mapped I/O). With several applications (hash tool, antivirus, Explorer, the game loader) opening the file at once, memory scaled by number of opens × file size, and repeated full decompressions stalled the loader.

Fix — shared refcounted memory cache with LRU eviction:

  • Each file is decompressed once; the buffer is shared by all open handles and on-demand reads.
  • After the last handle closes, the buffer stays warm so re-opens reuse it instantly.
  • Cached buffers are evicted least-recently-used when the total cache would exceed the memory limit (90% of RAM), falling back to the existing disk cache.
  • Memory usage is now ≈ base + one copy per file, regardless of how many applications access it.

Both the Dokan and WinFsp variants benefit (shared core filesystem engine).

New: Comic-book archive support

  • Mount .cbz (ZIP), .cbr (RAR) and .cb7 (7-Zip) archives.
  • Comic extensions are mapped to their container format, so they work with the existing readers; file dialogs, drag-and-drop, error messages and the ReadMe are updated accordingly.

WinFsp variant: stable driver support & better errors

  • WinFsp 2.1 (stable) is now the supported baseline — the previous winfsp.net 2.2.x package rejected the stable native 2.1 driver with incorrect dll version (need 2.2, have 2.1). The interop package is now winfsp.net 2.1.25156, which accepts native WinFsp 2.1 (stable) and 2.2+ (beta).
  • Mount-point-in-use (0xC0000035) now shows a clear "Mount Point In Use" dialog instead of a generic driver error suggesting a reinstall.
  • The native WinFsp DLL is pre-validated before mounting (guards against stale PATH entries and corrupted installations).
  • Version-mismatch handling is retained: mounts are blocked with an "Update WinFsp" dialog when the installed driver is older than 2.1.

Smarter bug reporting

  • Missing/outdated filesystem drivers (Dokan, WinFsp), driver version mismatches, mount-point collisions and "Can't install the Dokan driver" are recognized as expected environment/user conditions and no longer flood the bug-report API — they already surface as clear in-app dialogs.
  • Unsupported-archive errors are classified as user errors as well.

Other changes

  • SharpCompress updated to 0.50.3 across all projects.
  • Removed dead code (StatusSuccess, GetWinFspLibraryVersion, unused ComicExtensions field) and cleaned up formatting.
  • Test suite hardened: the applicationId assertion is now test-runner agnostic (no more false failure under ReSharper/Rider), and new tests cover the shared memory cache (single decompression, warm reuse, LRU eviction).
  • All projects bumped to 2.8.0; 1182 tests passing.

Full Changelog: release_2.7.2...release_2.8.0