·
551 commits
to main
since this release
CompressionWorkbench v1.0.0.776
Self-contained Windows UI, Windows CLI (cwb.exe) and Linux CLI
(cwb) builds, plus the version-locked Hawkynt.* NuGet packages
(Compression.Core / FileFormats.Audio / Archives / FileSystems).
Added
- FilePayload / DeferredPayloads, and EFS, HTFS and JFS1 past 2 GB (cd2c7b8)
- Btrfs: stream a file's bytes out instead of collecting them in memory (d9cf3e5)
- ImageAccessor: random-access reads for images past the 2 GB array limit (133219f)
- squishy demoscene PE compressor: detect + locate handler (0d9e52c)
- ExePackers: reconcile static unpackers + honesty audit of the analysis stack (fb0edd1)
- ELF crypter/packer unpackers: Ezuri, Ward, m0dern_p4cker, MidgetPack (ce5f009)
- ExePackers campaign base: CLI unpack/inspect, XOR/PyPE handlers, dataset probe (bfc61c3)
- FileFormat.ExePackers: add dataset-packed-pe detection and apLib/NRV support (fa509dc)
- Apple Partition Map + BSD disklabel parsers; Parallels/Bochs disk images now browsable (6a562e9)
- first-class symbolic-link support across filesystems + correct pointed-to size (f56fd51)
- RAID array assembly layer (Linux mdraid + Intel IMSM) — mdadm-proven RAID0/1/5 (d2da1f2)
- CB7 (Comic Book 7z) full R/W + EGG (ALZip) clean-room reader (fc3c3fb)
- reference documentation for the 21 remaining archive descriptors (post-merge gap) (6021a21)
- BitRock / InstallBuilder installer: full clean-room application extraction (411784a)
- ARM64 & RISC-V BCJ filters (liblzma parity) + full BCJ building-block family (fc6f561)
- Electron .asar + Motorola SREC file formats (1d1ffcc)
- Pack200 (JSR-200) unpacker: detect + segment decode + class listing (2387c3b)
- AndroidSparse, VIB & NBI image/installer formats (0a06226)
- PyInstaller onefile CArchive extractor (MEI cookie scan, PYZ module list) (8730a49)
- Reference documentation for all filesystem + archive descriptors (c55b50f)
- 49 archive formats promoted to honest R/W + wipe/defrag verb coverage (0f4cf89)
- close the last filesystem maintenance-verb gaps: ZxScl wipe, GsOs defrag/shrink, Stacker shrink (c8dee35)
- ext in-place SHRINK now relocates blocks (single-group), not just trailing-free trim (25f5f48)
- NTFS genuine relocate-not-rebuild image SHRINK + ext trailing-free trim — O(bytes moved) (c67d0a4)
- 7z & RAR5 genuine in-place REMOVE/update — compact in O(bytes shifted), no re-pack (126ea20)
- real host-kernel loop-mount proof for in-place MinixV1/V2 + Nilfs2; matrix 49->50 tool-proven (d197f54)
Removed
- Dicom, Nifti, Wad and Wad2 leave the archive bundle to the image bundle (f4ef46d)
- ConversionMatrix: retire the ExFat, Hpfs and Rpm quarantine entries (b9cd759)
- Drop stale interop Ignore markers on gzip, zip and Brotli encoding (695d3b8)
Changed
- APFS, HPFS and ext: accept a single file larger than 2 GB (daa50ec)
- Stream formats: decompress straight to disk instead of through a byte[] (0b43e3a)
- ShrinkEfficacy: bound the preset to what the readers can load back (37d36e1)
- EndToEnd: exclude whole-image targets from the self-round-trip matrix (e8a67f7)
- EXE-PACKER-COVERAGE: mark AtomPePacker out-of-scope (platform policy); tidy gap list (29f73d2)
- FileFormats: update UPX and PyInstaller components for ExePackers integration (19d43d7)
- verification matrix: SIM tier is empty — the 11 simplified/toy writers never existed in the repo (edba036)
Fixed
- BFS: build the volume over the sparse image, and refuse a run it cannot express (8cbba99)
- JFS: build the aggregate over the sparse image instead of one array (dfacc5d)
- RomFS: assemble the image without holding its file data (e421f3d)
- OCFS2: take an inline file's bytes from its payload (d89ead9)
- OCFS2: build and read a volume past 2 GB (857a55e)
- UFS: build the volume over the sparse image instead of one array (555a27f)
- FATX: build and read an image past 2 GB (9b0fae6)
- NILFS1: write a volume past 2 GB (becca22)
- HFS+: build and read a volume past 2 GB (1869be8)
- LittleFS and YAFFS2: emit the image piecewise instead of as one array (ebc8b9b)
- EROFS and ODS-1: build and read images past 2 GB (b785c27)
- GFS1: lift the array ceiling from the writer, reader and extent map (2d7d44e)
- QNX6 and VDFS: build and read images past 2 GB (e68a013)
- AdvFS: keep the full entry name in Create (c8dbc6f)
- AdvFS: build and read a storage domain past 2 GB (cfd2bba)
- ISO 9660, QNX4 and the shared rebuild verbs: lift the 2 GB ceiling (56e21d5)
- FAT: honour a forced FAT12/16/32 type instead of building a mismatched volume (8822e76)
- Filesystem maintenance verbs: correct results before and after, past 2 GB (19e3833)
- ext: emit real block groups so a volume is no longer capped at one group (82160fc)
- HPFS: lay metadata out before file data so volumes past 2 GB can be written (d0a06f1)
- APFS and Btrfs: build and read containers whose contents exceed 2 GB (5e5f90e)
- Btrfs: write the volume as a prefix and extend it, instead of one big array (c492d00)
- ext: map files through the full indirect chain, and size the volume to them (807c9a8)
- Lustre: keep the ldiskfs stream alive for the ExtReader that reads it (a2ecf2d)
- ext, btrfs and HPFS: read volumes past the 2 GB in-memory limit (6e5522a)
- LZ4: write a sequence of frames instead of buffering the payload (b8eee6c)
- CPIO and AR: list and extract members larger than 2 GB (0c3ae2c)
- Zstd and XZ: emit a frame/stream per chunk instead of buffering the payload (d671e03)
- Archives: create, list and extract entries larger than 2 GB (f025526)
- TFAT and FAT+: stream large volumes, and keep defrag's outer size (b5abff0)
- NTFS: build, read and edit volumes past the 2 GB in-memory limit (0e111b1)
- FAT: apply edits by streaming rebuild when the image is too large to buffer (7b85c8f)
- exFAT: size the allocation bitmap by cluster count, and build large volumes sparsely (bf60e29)
- FAT: route explicitly-sized images through the streaming writer (20c5220)
- HPFS: correct the superblock magics and emit a directory band (eeac610)
- RPM: decompress the payload before parsing it as cpio (43d8352)
- FormatDetector: read far enough to identify filesystems by content (28846b1)
- Polyglot: read py7zr archives through extractall (d902eaf)
- ExternalInterop tests: resolve external tools through PATH (08340b7)
- Brotli: restore the whitespace class in the UTF8 literal context LUT (9cef61d)
- CI Release build: drop CLI ProjectReference that copied publish-only deps.json (5c25828)
- Cb7: declare no magic signature (fixes Cb7-vs-SevenZip content-scan collision) (7e92178)
- SfxBuilderTests: deterministic stub bytes — kill a probabilistic CI flake (9dceb93)
- ExtBlockMover: fix corrupt ee_start_hi on extent relocation (>>32 shift no-op) (a84f1b0)