An
IoFilter which compresses all data using
JZlib.
Support for the LZW (DLCZ) algorithm is also planned.
This filter only supports compression using the PARTIAL FLUSH method,
since that is the only method useful when doing stream level compression.
This filter supports compression/decompression of the input and output
channels selectively. It can also be enabled/disabled on the fly.
This filter does not discard the zlib objects, keeping them around for the
entire life of the filter. This is because the zlib dictionary needs to
be built up over time, which is used during compression and decompression.
Over time, as repetitive data is sent over the wire, the compression efficiency
steadily increases.
Note that the zlib header is written only once. It is not necessary that
the data received after processing by this filter may not be complete due
to packet fragmentation.
It goes without saying that the other end of this stream should also have a
compatible compressor/decompressor using the same algorithm.