cowboy_compress_h(3)

NAME

cowboy_compress_h - Compress stream handler

DESCRIPTION

The module cowboy_compress_h compresses response bodies automatically when the client supports it. It will not try to compress responses that already have a content encoding or that have an etag header defined.

Normal responses will only be compressed when their size is lower than the configured threshold. Streamed responses are always compressed, including when the sendfile command is used. Because the file must be read in memory to be compressed, this module is not suitable for automatically compressing large files.

OPTIONS
    opts() :: #{
        compress_buffering => boolean(),
        compress_threshold => non_neg_integer()
    }

Configuration for the compress stream handler.

The default value is given next to the option name:

compress_buffering (false)
    Whether the output will be buffered. By default no buffering is done to provide maximum compatibility at the cost of a lower compression rate.

    This option can be updated at any time using the set_options stream handler command.

compress_threshold (300)
    How large the response body must be to be compressed when the response isn't streamed.

    This option can be updated at any time using the set_options stream handler command.

EVENTS

The compress stream handler does not produce any event.

CHANGELOG
    • 2.11: Compression is now disabled when the etag header is in the response headers.
    • 2.11: The vary: accept-encoding header is now always set when this handler is enabled.
    • 2.6: The options compress_buffering and compress_threshold were added.
    • 2.0: Module introduced.

SEE ALSO

cowboy(7), cowboy_stream(3), cowboy_decompress_h(3), cowboy_metrics_h(3), cowboy_stream_h(3), cowboy_tracer_h(3)