What this plugin does:

=====================
this plugin compresses responses, via gzip or brotli, whichever is applicable
it can compress origin responses as well as cached responses

installation:
make && sudo make install

if no makefile is present, you can compile it using
    tsxs -o compress.so *.cc
and then install it using
    tsxs -i -o compress.so

after installation, add a line to plugin.config:
compress.so

in this case, the plugin will use a default behaviour:
- use caching
- compress text/* for every origin
- don't hide accept encoding from origin servers (for an offloading reverse proxy)
- no urls are disallowed from compression

alternatively, a configuration can also be specified:
compress.so <path-to-config>/sample.compress.config

after modifying plugin.config, restart traffic server (sudo traffic_ctl server restart)
the configuration is re-read when a management update is given (sudo traffic_ctl config reload)

See sample.config.compress for an example configuration and the options that are available
