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.4.1
Name Modified Size InfoDownloads / Week
Parent folder
LRGEX-Compress-v1.4.1-setup.exe 2026-08-07 8.0 MB
README.md 2026-08-07 3.7 kB
v1.4.1 source code.tar.gz 2026-08-07 418.9 kB
v1.4.1 source code.zip 2026-08-07 437.5 kB
Totals: 4 Items   8.9 MB 0

๐Ÿ›ก๏ธ Data Integrity โ€” Full Metadata Preservation

LRGEX Compress now preserves your files exactly across a compress โ†’ extract round-trip. Whatever goes into the archive comes out identical โ€” no more "every extracted file shows today's date."

  • LastWriteTime (mtime) preserved on every file and folder โ€” sort-by-date, build systems, sync tools, and incremental backups all keep working correctly.
  • CreationTime (ctime) preserved โ€” the original creation date is restored, not lost.
  • Windows attributes preserved โ€” Hidden, Read-only, System, and Archive flags survive the round-trip. A hidden file extracts hidden; a read-only file extracts read-only.
  • Symbolic links / junctions preserved โ€” links recreate as links. On Windows, creating a link needs Administrator or Developer Mode; LRGEX asks once ("allow admin?") and, if yes, re-launches the extraction elevated to recreate every link exactly. If you decline, links degrade gracefully (never aborts the whole extraction).
  • Directory timestamps restored in a final pass โ€” so writing children into a folder doesn't overwrite the folder's original mtime. NTFS alternate data streams are not supported (rarely used; not planned).

โšก Performance โ€” Extract & Compress Wins

  • Metadata sidecar (.lrgex/meta.bin): one small packed blob at the front of the archive replaces 11k+ per-entry metadata headers on big folders. Both compress and extract handle roughly half as many tar entries now. Old v1.4.0 archives still read correctly via the per-entry fallback.
  • One-syscall metadata restore (SetFileInformationByHandle): mtime + ctime + attributes set in a single call on the already-open file handle โ€” no per-file re-open.
  • Direct 4 MB chunked writes on large-file extract (no redundant BufWriter copy).
  • Cache-served metadata on compress walk (DirEntry::metadata() instead of a fresh CreateFile per file) โ€” saves thousands of syscalls on big folders.
  • Removed the redundant 4 MB BufWriter on compress output โ€” zstd already emits good-sized blocks; the buffer was a pure memcpy of every compressed byte.
  • Tuned zstd multithreading โ€” JobSize(16MB) + OverlapSizeLog(0) at level 1, fewer thread handoffs.
  • Dedicated oversubscribed write pool (3ร— core count) for extraction writes โ€” correct sizing for workers that block in CreateFile and Defender scans.

๐Ÿž Fixes

  • Multi-select coordinator hardened: handles WAIT_ABANDONED (previous instance crashed holding the mutex) and stale coordinator-PID lockfiles โ€” a second rapid launch can no longer silently no-op.
  • Round-trip verified lossless: mtime/ctime/Hidden/ReadOnly/System, Unicode names, deeply nested paths, and a 3000-file stress batch (SHA256-checked).

๐Ÿ”’ Security Hardening

  • Signed manifest (detached latest.json.sig): the auto-update manifest is now cryptographically signed with Ed25519, preventing a compromised server from injecting a fake version or download URL.
  • Download size cap (100 MB): the updater rejects files exceeding 100 MB, preventing memory exhaustion from a poisoned manifest pointing at a huge file.
  • Update-channel logging: failed update checks now write to update.log in the install folder, so silent update-channel failures are observable.
  • GitHub release asset verification: deploy.ps1 now size-verifies the GitHub release asset via the API, not just the exit code.
  • Path-length guard: right-clicking a file with a path longer than 247 characters shows a clear error instead of a confusing "not found".
  • Slint attribution: added "Made with Slint" badge (Slint Royalty-free License ยง2).

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