Compression Decoders
February 29, 2024 ยท View on GitHub
Compression decoders read from one input stream (an io_reader called src)
and write to an output stream (an io_writer called dst). Wuffs'
implementations have one key method: transform_io. It incrementally
decompresses the source data.
This method is a coroutine, and does not require
either all of the input or all of the output to fit in a single contiguous
buffer. It can suspend with the $short_read or $short_write
statuses when the src buffer needs re-filling or the
dst buffer needs flushing. For an example, look at the
example/zcat program, which uses fixed size buffers,
but reads arbitrarily long compressed input from stdin and writes arbitrarily
long decompressed output to stdout.
Dictionaries
TODO: standardize the various dictionary APIs, after Wuffs v0.2 is released.
API Listing
In Wuffs syntax, the base.io_transformer methods are:
dst_history_retain_length() u64get_quirk(key: u32) u64set_quirk!(key: u32, value: u64) statustransform_io?(dst: io_writer, src: io_reader, workbuf: slice u8)workbuf_len() range_ii_u64
Implementations
Examples
Quirks
Related Documentation
See also the general remarks on Wuffs' standard library.