aboutsummaryrefslogtreecommitdiff
path: root/lib/std/compress/flate.zig
AgeCommit message (Collapse)Author
2025-09-30add deflate compression, simplify decompressionKendall Condon
Implements deflate compression from scratch. A history window is kept in the writer's buffer for matching and a chained hash table is used to find matches. Tokens are accumulated until a threshold is reached and then outputted as a block. Flush is used to indicate end of stream. Additionally, two other deflate writers are provided: * `Raw` writes only in store blocks (the uncompressed bytes). It utilizes data vectors to efficiently send block headers and data. * `Huffman` only performs Huffman compression on data and no matching. The above are also able to take advantage of writer semantics since they do not need to keep a history. Literal and distance code parameters in `token` have also been reworked. Their parameters are now derived mathematically, however the more expensive ones are still obtained through a lookup table (expect on ReleaseSmall). Decompression bit reading has been greatly simplified, taking advantage of the ability to peek on the underlying reader. Additionally, a few bugs with limit handling have been fixed.
2025-07-31std.compress.flate.Decompress: don't compute checksumsAndrew Kelley
These have no business being in-bound; simply provide the expected values to user code for maximum flexibility.
2025-07-31std.compress.flate.Decompress: implement peekBitsEnding and writeMatchAndrew Kelley
2025-07-31std.compress.flate: finish reorganizingAndrew Kelley
2025-07-31delete flate implementationAndrew Kelley
2025-07-31std.compress: rework flate to new I/O APIAndrew Kelley
2024-07-09std: fix typos (#20560)Jora Troosh
2024-03-04flate: use 4 bytes lookahead for zlibIgor Anić
That ensures no bytes are left in the BitReader buffer after we reach end of the stream.
2024-02-27compress: activate tests in wasm32Igor Anić
They were disabled because insufficient stack size. That is [changed](https://github.com/ziglang/zig/commit/d51aa9748f9e4e3616328a207a8047ff37d81f8b) now.
2024-02-26Remove redundant test name prefixes now that test names are fully qualifiedRyan Liptak
Follow up to #19079, which made test names fully qualified. This fixes tests that now-redundant information in their test names. For example here's a fully qualified test name before the changes in this commit: "priority_queue.test.std.PriorityQueue: shrinkAndFree" and the same test's name after the changes in this commit: "priority_queue.test.shrinkAndFree"
2024-02-26change default WASI stack sizeAndrew Kelley
to match the other operating systems. 16 MiB closes #18885
2024-02-15skip failing wasm testsIgor Anić
2024-02-14reorganize compress package root folderIgor Anić