[manual index][section index]


deflate, inflate - data compression filters


include "filter.m";

deflate := load Filter Filter->DEFLATEPATH;
inflate := load Filter Filter->INFLATEPATH;

init:  fn();
start: fn(param: string): chan of ref Rq;


These implementation modules conform to the Filter module interface for data-processing filters. For details of the interface, see filter(2).

Deflate implements gzip-compatible stream compression. The param string argument to start can contain one or more of the following option characters:

Enable debugging output. Each line of debugging output is provided in an Rq.Info message.
Enable verbose mode. Each line of verbose output is provided in an Rq.Info message.
Add a gzip header and footer to the data. With this flag, the data after filtering will be in exactly the same format as a gzip file, with accompanying checksum.
Add a zlib header and footer to the data. The footer contains a checksum.
`0' to `9'
Specifies the level of compression to be used (9 highest). See gzip(1).

Inflate performs the inverse operation to deflate. If the param argument to start begins with the character `h' then the input to the filter is assumed to be in the standard gzip file format; if it starts with the character `z' it is assumed to be in zlib format; the output will be checked for integrity in both cases. While processing a gzip stream, the Rq.Info message is used to transmit some information; the type of information is determined by the first word of msg, as follows:

The rest of msg (after a following space) is the name of the original filename before compression.
The rest of msg (after a following space) is the modification time of the original file before compression.




gzip(1), filter(2)
Internet RFCs RFC1950, RFC1951, and RFC1952.

FILTER-DEFLATE(2 ) Rev:  Tue Mar 31 02:42:39 GMT 2015