Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Squid eCAP GZIP/DEFLATE adapter


This Software is an eCAP adapter for HTTP compression with GZIP and DEFLATE.


The adapter will be installed in /usr/local/lib/ by default.

The libecap library is required to build and use these adapters. You can get the library from The adapter can be built and installed from source, usually by running:

    % ./configure 'CXXFLAGS=-m32' 'LDFLAGS=-L/usr/local/lib'


    % ./configure 'CXXFLAGS=-m64' 'LDFLAGS=-L/usr/local/lib'

    % make
    % make install-strip

Note: LDFLAGS should point on libecap directory.

Note: Adapter requires libecap 1.0.0 or above. Configuration checks libecap version; make sure your pkg-config see libecap.pc, set/adjust PKG_CONFIG_PATH otherwise.


Adapter versions starting 1.5.0 configures via ecap_service arguments in squid.conf.

Supported configuration parameters:

* maxsize (default 16777216 bytes, i.e. 16 Mb) - maximum compressed file size
* level (default is 6, valid range 0-9) - gzip/deflate global compression level
* errlogname (default path/filename is /var/log/ecap_gzip_err.log)	- arbitrary error log name.
* complogname (default path/filename is /var/log/ecap_gzip_comp.log)	- arbitrary compression log name.
* errlog (default is 0, default path/filename is /var/log/ecap_gzip_err.log) 	- error log
* complog (default is 0, default path/filename is /var/log/ecap_gzip_comp.log)	- compression log

Note: errlogname/complogname should be specify with full path and file name. Directory(-ies) should have write permission for proxy. If file(s) exists - it will appends. It not exists - will be created.

Adapter logging disabled by default. To enable error log specify errlog=1. To enable compression log specify complog=1. Proxy must have permissions to write.

Note: When configuration parameters has any error in specifications, adapter starts with defaults. If error log exists, diagnostics message will be write.


ecap_enable on
acl gzipmimes rep_mime_type -i "/usr/local/squid/etc/acl.gzipmimes"
loadable_modules /usr/local/lib/
ecap_service gzip_service respmod_precache ecap:// [maxsize=16777216] [level=6] [errlog=0] [complog=0] bypass=off
adaptation_access gzip_service allow gzipmimes

acl.gzipmimes contents:

# Note: single "/" produces error in simulators,
#       but works in squid's regex


Due to performance reasons, all mime checks executes only once outside adapter, at proxy level. So, be careful when choose what mime types will be pass into adapter.

Also, HTTP/200 status now checks directly inside adapter. So, this rule:

acl HTTP_STATUS_OK http_status 200
adaptation_access gzip_service allow HTTP_STATUS_OK

is no longer required.

Also be careful with text/plain mime-type. For some reasons you may be required to remove it from acl, because of sometimes plain text files can be inadequately big and and can overload the CPU during decompression. In this case specify "maxsize" which fit you requirements.

** Adapter requires c++11 - compatible C++ compiler to build. **


For eCAP documentation, the libecap library implementation, and support information, please visit the eCAP project web site:

For original eCAP GZIP adapter documentation and support, please visit:


This Software is an eCAP adapter for HTTP compression with GZIP and DEFLATE. This is fully re-worked in C++11, improved and bugfixed production version, based on Constantin Rack's adapter





No packages published