A)
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.