A)<div>there already is std.zlib; why not have:</div><div><div>std.compress.zlib: public import std.zlib</div></div><div><div>std.compress.lzw: put this new module there instead of in std.compress</div></div><div><div>std.compress.image.png</div>
</div><div><div><div>std.compress.image.jpg</div></div></div><div><br></div><div><div>B)</div><div>rename:</div><div>std.compress.lzwCompress => std.compress.lzw.compress</div><div>std.compress. lzwExpand => std.compress.lzw.uncompress</div>
<div><br></div><div>which is more consistent with compress/uncompress from std.zlib</div></div><div><br></div><div>C)</div><div>maybe add a link to <a href="https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch">https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch</a> or other source</div>
<div><br></div><div>D)</div><div>CircularBuffer belongs somewhere else; maybe std.range or std.container</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div class="gmail_quote">On Mon, Jun 3, 2013 at 8:44 PM, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="https://github.com/WalterBright/phobos/blob/std_compress/std/compress.d" target="_blank">https://github.com/<u></u>WalterBright/phobos/blob/std_<u></u>compress/std/compress.d</a><br>
<br>
I wrote this to add components to compress and expand ranges.<br>
<br>
Highlights:<br>
<br>
1. doesn't do any memory allocation<br>
2. can handle arbitrarily large sets of data<br>
3. it's lazy<br>
4. takes an InputRange, and outputs an InputRange<br>
<br>
Comments welcome.<br>
</blockquote></div><br></div>