[manual index][section index]

NAME

deflate, inflate - data compression filters

SYNOPSIS

include "filter.m";

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

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

DESCRIPTION

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:

`d'
Enable debugging output. Each line of debugging output is provided in an Rq.Info message.
`v'
Enable verbose mode. Each line of verbose output is provided in an Rq.Info message.
`h'
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.
`z'
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:

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

SOURCE

/appl/lib/deflate.b
/appl/lib/inflate.b

SEE ALSO

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

FILTER-DEFLATE(2 ) Rev:  Tue May 05 13:12:34 GMT 2009