• Stars
    star
    181
  • Rank 212,110 (Top 5 %)
  • Language
    C
  • License
    Other
  • Created over 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Collection of Varnish Cache modules (vmods) by Varnish Software

CircleCI

Varnish module collection by Varnish Software

This is a collection of modules ("vmods") extending Varnish VCL used for describing HTTP request/response policies with additional capabilities.

Included:

  • accept: Filter accept-like headers
  • 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.

Installation

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 6.3, 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 (make, automake, libtool)
  • the Varnish development files (varnish-dev or varnish-devel)
  • rst2man (python-sphinx)

Note that packages names given here are purely indicative and may vary depending on the OS you are using.

To compile:

./bootstrap
./configure   # run "configure -h" first to list options
make
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.

Usage

Each module has a different set of functions and usage, described in each src/vmod_*.vcc file.

Note that make rst-docs will generate reStructuredText docs in the docs/ directory.

Moved or replaced VMODs

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)

  • softpurge is now replaced by the purge VMOD 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.

Administrativa

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.

Contact

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.

More Repositories

1

hitch

A scalable TLS proxy by Varnish Software.
C
1,862
star
2

Varnish-Cache

Moved. New address: https://github.com/varnishcache/varnish-cache/
C
888
star
3

Varnish-Book

Varnish Tutorial and training material
HTML
353
star
4

vagent2

Varnish Agent
Roff
283
star
5

zipnish

Python
127
star
6

docker-varnish

Official docker image
Dockerfile
82
star
7

api-gateway-benchmarks

HCL
68
star
8

spew

HTTP request spewer / load generator
C
55
star
9

libvmod-example

An example vmod for Varnish Cache
Shell
53
star
10

libvmod-digest

Digest and HMAC vmod
C
50
star
11

libvmod-cookie

A Varnish module for simpler use of the cookie header.
C
49
star
12

libvmod-curl

cURL Varnish bindings by Varnish Software
C
48
star
13

libvmod-header

A header-modification vmod for Varnish
47
star
14

varnishgather

Information gathering tool for Varnish Cache.
Shell
45
star
15

libvmod-rtstatus

Varnish realtime status page.
C
37
star
16

libvmod-geoip

GeoIP Varnish module by Varnish Software
C
26
star
17

libvmod-shield

M4
25
star
18

libvmod-var

Variable support VMOD
25
star
19

varnish-agent

Perl
22
star
20

libvmod-vsthrottle

Improved request throttling module for Varnish
C
22
star
21

newrelic_varnish_plugin

Integration plugin between Varnish and New Relic
Ruby
21
star
22

varnish-nagios

Nagios plugin for Varnish
C
21
star
23

docker-hitch

Official Docker image for Varnish's Hitch TLS proxy
Dockerfile
14
star
24

libvmod-xkey

Secondary hashes for Varnish Cache. (surrogate keys, cache keys)
C
13
star
25

libvmod-memcached

A memcached client vmod for Varnish
C
12
star
26

toolbox

VCL
10
star
27

cookbooks

Chef cookbooks for installing Varnish
Ruby
9
star
28

varnish-wiki

Varnish Web Developer Wiki Documentation
VCL
8
star
29

libvmod-softpurge

C
6
star
30

varnishlog-json

Varnishlog, with a JSON output
C
5
star
31

varnish-gcov

Tools for measuring test suite coverage of Varnish Cache.
Python
4
star
32

libvmod-null

Simple nulldata with synth()
M4
4
star
33

nodestatus

Lightweight web service to report node status to a load balancer
Go
4
star
34

libvarnish-sslhelper

Varnish OpenSSL initialization helper
C
2
star
35

libvmod-saintmode

Saint mode module for Varnish Cache 4.1.
C
2
star
36

vcs2csv

Go
1
star
37

router_example

Varnish Controller HTTP Routing Example
Shell
1
star
38

helm-varnish-cache

Helm Chart for Varnish Cache
Shell
1
star
39

pkg-hitch

Shell
1
star
40

uap-varnish

Generate Varnish VCL rules from ua-parser data
Go
1
star