Using the std.zlib compression
Phobos provides a wrapper for the common zlib
/gzip
/DEFLATE
compression algorithm. This algorithm is used in the .zip
files, the .png
images, the HTTP protocol, the common gzip
utility, and more. With std.zlib
, we can both compress and decompress data easily.
How to do it…
Let's compress and decompress data by executing the following steps:
Import
std.zlib
.Create an instance of
Compress
orUnCompress
, depending on what direction you want to go.Call the
compress
oruncompress
methods for each block of data, concatenating the pieces together as they are made.Call
flush
to get the last block of data.
The code is as follows:
void main() { import std.zlib, std.file; auto compressor = new Compress(HeaderFormat.gzip); void[] compressedData; compressedData ~= compressor.compress("Hello, "); compressedData ~= compressor.compress("world!"); compressedData ~= compressor.flush(); std.file.write("compressed.gz", compressedData); }
Running the program will create...