Download Latest Version LRGEX-Compress-v1.7.1-setup.exe (9.7 MB)
Email in envelope

Get an email when there's a new version of LRGEX-Compress

Home / v1.7.0
Name Modified Size InfoDownloads / Week
Parent folder
LRGEX-Compress-v1.7.0-setup.exe 2026-08-12 9.7 MB
README.md 2026-08-12 4.1 kB
v1.7.0 source code.tar.gz 2026-08-12 992.6 kB
v1.7.0 source code.zip 2026-08-12 1.1 MB
Totals: 4 Items   11.8 MB 0

✨ New Features

  • Integrity checksum: .zgx archives now include zstd XXHash64 checksum verification on extract. Detects storage corruption, bad transfers, and bit rot before you lose data. Zero measurable speed cost (~6ms per 256MB — within run-to-run noise).
  • RAR extraction rewritten in pure Rust: replaces the vendored C unrar library with unrar-rs (pure Rust, no C dependencies). Adds:
  • Symbolic link preservation (asks admin once, recreates links exactly)
  • mtime + ctime restore on extracted files
  • Windows attributes restore (ReadOnly, Hidden, etc.)
  • Instant mid-file cancel (custom Writer aborts on cancel flag)
  • Multi-volume support (part1.rar, part2.rar, ...)
  • 7z metadata restore: extracted 7z files now preserve mtime, ctime (when carried), and Windows attributes.
  • 7z symlink support: symlinks stored as reparse points in .7z archives are now detected and recreated (with path-traversal guard for security).
  • Instant feedback on click: the progress window now shows an animated sweep the moment you click Compress or Extract — no more frozen 0% bar while the engine spins up.
  • Encrypted archive support: password-protected RAR, 7z, and ZIP archives now prompt for a password. GUI shows a masked password dialog with auto-focus. CLI: -p <password> flag works in any position. Example: lrgex-compress -x -p secret archive.rar

🔧 Fixes

  • 7z overwrite+cancel data loss (critical): extracting a .7z over an existing file, then cancelling, no longer destroys the user's original file. All 7z extraction now uses temp-then-rename (same safe pattern as .zgx and .zip).
  • ctime clobber on every extract (critical): every extracted file was getting creation time set to January 1, 1970. The bug was in apply_times_handlesecs_to_filetime(0) is NOT a zero FILETIME (it's 1601+epoch_offset = 1970-01-01). The "NULL if zero" guard never fired. Fixed: branch on the INPUT value, not the converted FILETIME.
  • 7z mtime lost: 7z extraction was giving every file NOW() as last-modified time. Now reads entry.last_modified_date() from sevenz-rust2 and restores it.
  • Checksum failure silently swallowed: include_checksum(true) was discarding the Result with let _ =. Now propagates via .expect() — a checksum failure surfaces as an error instead of silently shipping without integrity.
  • Test harness pipe deadlock: integration tests could hang when the spawned exe produced >64KB of stdout (pipe buffer fill). Fixed with Stdio::null().

🧪 Quality

  • 49 automated tests covering every format, every metadata field, cancel, multi-volume, crash-safety, and overwrite+cancel data-loss scenarios.
  • No #[ignore]d tests hiding gaps — every test runs automatically.
  • RAR + 7z tests auto-detect external tools (WinRAR / 7-Zip) and run when present.
  • Vendored C unrar crate removed (210KB of C source). RAR extraction is 100% pure Rust.
  • License: switched from MIT to GPL-3.0-or-later (unrar-rs is GPL-3.0 + UnRAR restriction).

⚠️ Known Limitations

  • 7z symlinks: requires Administrator or Developer Mode to create symlinks on Windows. Without elevation, symlinks in .7z archives are skipped silently.
  • zip ctime: the ZIP format has no creation time field — cannot be preserved.
  • 7z ctime: 7-Zip does not store creation time by default (only with -mtc=on). Restored when present, absent when not.
  • RAR4: unrar-rs claims support but could not be tested (WinRAR 7.23 creates RAR5 only).
  • Encrypted archives: password-protected RAR, 7z, and ZIP are supported via GUI prompt or -p <password> CLI flag. However, the GUI window stays open briefly after extraction completes (auto-close delay). Scripted/headless use with -p blocks until the window is closed manually.

Download LRGEX-Compress

Source: README.md, updated 2026-08-12