| Name | Modified | Size | Downloads / 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
BufWritercopy). - Cache-served metadata on compress walk (
DirEntry::metadata()instead of a freshCreateFileper file) โ saves thousands of syscalls on big folders. - Removed the redundant 4 MB
BufWriteron 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
CreateFileand 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.login the install folder, so silent update-channel failures are observable. - GitHub release asset verification:
deploy.ps1now 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).