This is a collection of modules ("vmods") extending Varnish VCL used for describing HTTP request/response policies with additional capabilities.
bodyaccess: Client request body access
header: Modify and change complex HTTP headers
saintmode: 3.0-style saint mode
str: String operations
tcp: TCP connections tweaking
var: Variable support
vsthrottle: Request and bandwidth throttling
xkey: Advanced cache invalidations
Modules in this repository are feature-complete and are maintained to stay compatible with new Varnish releases and to fix bugs. We'll also gladly considering pull requests for new features but we recommend opening an issue first to discuss implementation plans.
Source releases can be downloaded from the github release page of the project.
Each release only targets one version of Varnish (visible in the realease title)
and the git repository sports a branch dedicated to each version, starting from
6.0. This means that if you want to compile modules for Varnish
you need to
git checkout the
6.3 branch of this repository
Compiling, testing and installing relies on the
autotools suite and requires:
- the usual autotools dependencies (
- the Varnish development files (
Note that packages names given here are purely indicative and may vary depending on the OS you are using.
./configure # run "configure -h" first to list options
make check # optional (tests)
make rst-docs # optional (docs)
make install # optional (installation), run as root
Note: If you downloaded/cloned the source code and not the release archive, you
need to run
make rst-docs before being able to install.
A Dockerfile is available as example.
Each module has a different set of functions and usage, described in
make rst-docs will generate
reStructuredText docs in the
VMODs in this category are no longer maintained because their functionality is covered by other functionality or newer VMODs.
In this repository there is only two such vmods:
cookie, that is now part of Varnish (since 6.4)
softpurgeis now replaced by the
purgeVMOD in Varnish (since 5.2). Note that this VMOD is also in the "feature complete" category, since it is still needed for Varnish Cache 4.1.
The goals of this collection are:
- Simplify access to vmod code for Varnish users. One package to install, not 6.
- Decrease the maintenance cost that comes with having 10 different git repositories, each with autotools and (previously) distribution packaging files.
Expressed non-goals are:
- Import vmods that require external libraries, like curl or geoip. This collection should be simple and maintenance free to run.
- Support older releases of Varnish Cache.
- Include every vmod under the sun. We'll add the important ones.
Addition of further vmods is decided on a case-by-case basis. Code quality and maintenance requirements will be important in this decision.
This code is maintained by Varnish Software. (https://www.varnish-software.com/)
Issues can be reported via the Github issue tracker.
Other inquires can be sent to opensource@__no_spam_please__varnish-software.com.