Minlzma – Minimal LZMA Project
github.com
github.com
DEFLATE is a ubiquitous compression format that is used in ZIP, GZIP, PNG, Git, and more. It is decades old and much less space-efficient than LZMA.
> The entire output buffer must be allocated with a fixed size -- however, callers are able to query the required size
I have not seen a compression library ask for this before. Chunk-at-a-time is not supported? Whole file in RAM? So no-go for memory constrained environments or large files?
This is from the Windows Internals guy? His reputation is pretty good, maybe I am missing something here.
Edit: The code also keeps the input buffer in a global variable. Weird.
I am going to guess he has a very specific use case in mind for this library, like a bootloader or something, where memory management and multiple files are not as important because you decode once and throw out everything shortly after.
(though all that assumes LZMA decompression is fast enough)
It should still work with large files on systems where they can be memory mapped.
But for the specific scenario cited of historical archivists and preservation, I think it's reasonable to say "run zfs or a similar solution and closely monitor/replace the disks over time". That sounds more likely to work than building resilience into the equivalent of .zip and hoping those tools will recover such an error.
You can tell xz isn’t so bad by the complete absence of any real world report of xz causing issues.
Describing it as a "polemic" seems like an overly emotional reaction. Did you actually read it? It seems a well-researched, well-informed article to me, with solid verifiable facts.