On Tuesday, 4 June 2013 at 03:44:05 UTC, Walter Bright wrote:
https://github.com/WalterBright/phobos/blob/std_compress/std/compress.d

I wrote this to add components to compress and expand ranges.

Highlights:

1. doesn't do any memory allocation
2. can handle arbitrarily large sets of data
3. it's lazy
4. takes an InputRange, and outputs an InputRange

Comments welcome.

I may have misunderstood something, but the code does not
implement LZW (a variant of LZ78), but a variant of LZ77 (i.e.
deflate/ZIP).

See https://en.wikipedia.org/wiki/LZ77_and_LZ78

Reply via email to