Varnish Modules

VMODs are extensions written for Varnish Cache. This page serves as a directory of maintained VMODs.

If you have written a VMOD and want it listed here please send a PR to this github repo and we will be happy to include it.

For other Varnish Cache related projects and utilities, please see the Varnish Extras

Instructions how to get your VMOD on this list.

VMOD

Description

Docs

License

Status

Link

VCC

Support

abtest

AB Tests value selector

3.0

FreeBSD

mature

Github

3.0

all_healthy

director to use more than one probe or a different backend’s probe

4.1 6.0 6.2 master

FreeBSD

mature

UPLEX gitlab

4.1 6.0 6.2 master

UPLEX

authentication

Authentication

3.0

FreeBSD

mature

Github

3.0

awsrest

AWS Signature

3.0 4.0 4.1 5.0 master

FreeBSD

development

Github

3.0 4.0 4.1 5.0 master

backend_dyn

create and delete backends at runtime

4.1

FreeBSD

development

Repos

4.1

UPLEX

basicauth

Basicauth

4.0 4.1 5.1 6.0

GPLv2

mature

Repos

4.0 4.1 5.1 6.0

Norse Digital

blobcode

binary-to-text encodings and decodings for BLOBs

4.1 5.0 5.1

FreeBSD

included in Varnish-Cache since release 5.2 as vmod_blob

Repos

4.1 5.0 5.1

UPLEX

blobdigest

digests and hmacs for BLOBs

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

blobsha256

SHA256 digests and hmacs for BLOBs

4.1

FreeBSD

development

Repos

4.1

UPLEX

blobsynth

Generate synthetic() responses from BLOBs

5.2 6.0 6.1 6.2 master

Public Domain

mature

UPLEX gitlab

5.2 6.0 6.1 6.2 master

UPLEX

boltsort

boltsort - QueryString params sort

3.0 4.0

FreeBSD

mature

Github

3.0 4.0

brotli

Varnish Fetch Processor (VFP) for brotli de-/compression

6.2 master

FreeBSD

mature

UPLEX gitlab

6.2 master

UPLEX

cfg

Access to local / remote .ini / .json files, access to environment variables, and execution of local / remote Lua and JavaScript scripts

4.1 6.0 6.2 master

FreeBSD

mature

Github

4.1 6.0 6.2 master

Allenta Consulting S.L.

cluster

simple and easy cache clustering

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

constant

constants as objects in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

cookie

Cookie

4.1

FreeBSD

mature

Github

4.1

Varnish Software

cookie (newer versions)

Cookie (newer versions)

6.1 6.2 master

FreeBSD

mature

Github

6.1 6.2 master

UPLEX

crashhandler

Crashhandler

3.0

FreeBSD

mature

Github

3.0

crypto

asymmetric signatures (RSA, DSA) in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

curl

cURL

4.1

FreeBSD

mature

Github

4.1

Varnish Software

dateformat

Date conversions functions accordingly to a date format (strftime)

4.1 5.0

BSD 2-Clause

mature

Github

4.1 5.0

dbrw

Database-driven rewrites

4.0 4.1 5.1 6.0

GPLv2

mature

Repos

4.0 4.1 5.1 6.0

Norse Digital

dclass

dClass Apache DeviceMap

4.1

Apache2

mature

Github

4.1

dcs

Device Classifier Service

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

deviceatlas

DeviceAtlas Mobile Detection

Other

mature

Varnish Software

dgram

Dgram

4.1

FreeBSD

development

Github

4.1

dict

Dictionary look-up

4.1 5.1 6.0

GPLv2

mature

Repos

4.1 5.1 6.0

Norse Digital

digest

Digest

4.1

FreeBSD

mature

Github

4.1

Varnish Software

directors

Backend selection directors

4.0 4.1 master

FreeBSD

included

Github

4.0 4.1 master

Varnish Software UPLEX

dns

DNS

4.1

Apache2

mature

Github

4.1

drupal7

Provide Drupal-related functions within Varnish

3.0 4.0

FreeBSD

mature

Repos

3.0 4.0

dynamic

Dynamic Backends from DNS lookups and service discovery from SRV records

4.1 5.0 5.1 5.2 6.0 6.2 master

FreeBSD

mature

Github

4.1 5.0 5.1 5.2 6.0 6.2 master

UPLEX

dyncounters

create custom VSC at run time

master

FreeBSD

development

Github

master

ece

Varnish Module for encrypted Content-Encoding per RFC 8188

master

FreeBSD

development

UPLEX gitlab

master

UPLEX

esicookies

inject cookies from Set-Cookie into ESI request headers

3.0

FreeBSD

development

Repos

3.0

UPLEX

esiextra

ETag and Last-Modified for ESI

master

FreeBSD

development

Repos

master

UPLEX

etag

ETags generated in Varnish

master

FreeBSD

development

UPLEX gitlab

master

UPLEX

example

example vmod - hello world!

4.1

FreeBSD

prototype

Github

4.1

Varnish Software

fiftyonedegrees

51Degrees Device Detection

6.0

EUPL

mature

Github

6.0

5 1 D e g r e e s . m o b i L i m i t e d

file

File

3.0

FreeBSD

development

Github

3.0

frozen

Efficient JSON parsing based on the frozen parser

6.2 master

FreeBSD

mature

UPLEX gitlab

6.2 master

UPLEX

gcrypt

access the libgcrypt library of cryptographic building blocks

5.1

FreeBSD

development

Repos

5.1

UPLEX

geoip2

Query MaxMind GeoIP2 DB files

4.1 6.0 6.1 master

BSD 2-Clause

mature

Github

4.1 6.0 6.1 master

globalvar

global variables as objects in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

gossip

Dump information about contents stored in the cache to a JSON file

4.1 6.0 6.2 master

FreeBSD

development

Github

4.1 6.0 6.2 master

Allenta Consulting S.L.

hashids

Hashids encode and decode support

4.1 5.0 5.1 6.0

MIT

development

Github

4.1 5.0 5.1 6.0

Schibsted Media Group

header

Header manipulation

4.0

FreeBSD

mature

Github

4.0

Varnish Software

headerproxy

Add custom request/response headers via your native programming language.

4.1

FreeBSD

development

Github

4.1

hoailona

support use of the SecureHD Policy service provided by Akamai Media Services

5.0 5.1 5.2 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

5.0 5.1 5.2 6.1 6.2 master

UPLEX

i18n

libvmod-i18n

3.0

Other

mature

Github

3.0

imgdata

imgdata

3.0

Other

development

Github

3.0

ip2location

A Varnish module that enables the user to find the country, region, city, ISP and proxy information by IP address.

master

MIT

development

Github

master

IP2Location

ipcast

ipcast

3.0

FreeBSD

mature

Github

3.0

Varnish Software

jq

JSON processor

master

BSD 2-Clause

development

Github

master

json

JSON

3.0

FreeBSD

development

Github

3.0

ldap

LDAP authentication

3.0

FreeBSD

development

Github

3.0

libvmod_unidirectors

Backend selection directors (alternative from vmod_directors)

4.1 master

FreeBSD

mature

Github

4.1 master

lua

Lua

4.1

FreeBSD

prototype

Github

4.1

maxminddb

Maxmind Geoip

4.1

FreeBSD

prototype

Github

4.1

memcached

memcached

3.0

FreeBSD

mature

Github

3.0

null

null - Binary data in synthetic

3.0

FreeBSD

mature

Github

3.0

oob_probe

assign an out-of-band health probe to a backend

4.1

FreeBSD

development

Repos

4.1

UPLEX

otp

One-time password generator(HOTP/TOTP)

5.1 master

FreeBSD

development

Github

5.1 master

parseform

Parse POST field

4.1 5.1 master

FreeBSD

development

Github

4.1 5.1 master

pcre2

access the PCRE2 regular expression library

5.1

FreeBSD

development

Repos

5.1

UPLEX

pipe

Varnish Delivery and Fetch Processors that pipe responses through external commands

master

FreeBSD

development

UPLEX gitlab

master

UPLEX

queryfilter

Simple query string filter/sort module

3.0 4.0 4.1 5.2 6.2

Apache2

mature

Github

3.0 4.0 4.1 5.2 6.2

querystring

Advanced query-string filtering.

4.1 5.x 6.x master

GPLv3+

mature

Github

4.1 5.x 6.x master

ratelimit

Ratelimit

3.0

FreeBSD

development

Github

3.0

re

regular expression (regexp) matches and backreferences

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

re2

access the Google RE2 regular expression engine

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

redirect

redirect

3.0

FreeBSD

development

Github

3.0

redis

Access to Redis Server / Redis Cluster databases, including Redis Sentinel support

4.1 6.0 6.2 master

FreeBSD

mature

Github

4.1 6.0 6.2 master

Allenta Consulting S.L.

remoteip

Determine the actual client IP address from X-Forwarded-For or similar header

6.0 6.1 6.2 6.3

GPLv3+

mature

Repos

6.0 6.1 6.2 6.3

Norse Digital

rfc6052

rfc6052

4.1

FreeBSD

development

Github

4.1

rtstatus

RealTime Status Page

3.0

FreeBSD

mature

Github

3.0

Varnish Software

saintmode

Saint mode (4.1 or later)

4.1

FreeBSD

mature

Github

4.1

Varnish Software

secdown

Secure download

3.0

FreeBSD

prototype

Github

3.0

selector

match strings associated with backends, regexen and other strings

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

shield

Shield

3.0

FreeBSD

mature

Github

3.0

soap

Read SOAP XML messages in HTTP request’s body and expose fields

4.1 5.0

BSD 2-Clause

development

Github

4.1 5.0

softpurge

Soft purge

4.1

FreeBSD

mature

Github

4.1

Varnish Software

statsd

Statsd - Varnish stats

3.0

FreeBSD

mature

Github

3.0

std

std - the standard VMOD

3.0 4.0 4.1 master

FreeBSD

included

Github

3.0 4.0 4.1 master

Varnish Software

taskvar

task scoped variables as objects in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

tbf

Token Bucket Filtering

4.0 4.1 5.1 6.0

GPLv2

mature

Repos

4.0 4.1 5.1 6.0

Norse Digital

threescale

API Proxy

3.0

FreeBSD

mature

Github

3.0

throttle

Throttle

3.0

FreeBSD

mature

Github

3.0

timers

Varnish Timers (timing&duration)

3.0

FreeBSD

mature

Github

3.0

timeutils

Time Utils

3.0

FreeBSD

mature

Github

3.0

topvar

top request (across all ESI levels) scoped variables as objects in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

tus

TUS Upload Server (Proxy TUS to single upload)

master

FreeBSD

development

UPLEX gitlab

master

UPLEX

urlcode

URL Code

4.1

FreeBSD

mature

Github

4.1

urlfilter

libvmod-urlfilter

3.0

Other

development

Github

3.0

urlsort

URL Sort

3.0

FreeBSD

mature

Github

3.0

utf8

Unicode normalization, case-folding and other operations

4.1 6.0 6.1 master

BSD 2-Clause

mature

Github

4.1 6.0 6.1 master

utils

libvmod-utils

3.0

Other

mature

Github

3.0

uuid

UUID

3.0 4.0 4.1 5.0 5.1 5.2 6.0 master

Apache2

mature

Github

3.0 4.0 4.1 5.0 5.1 5.2 6.0 master

var

Variable Support

4.1

FreeBSD

mature

Github

4.1

Varnish Software

variable

Enhanced variable support

4.0 4.1 5.1 6.0

GPLv2

mature

Repos

4.0 4.1 5.1 6.0

Norse Digital

vslp

VSLP (StateLess Persistence) aka shard

4.0 4.1 master

FreeBSD

included in Varnish-Cache since release 5.0 as the shard director

Repos

4.0 4.1 master

UPLEX

vsthrottle

vsthrottle - Rate-limiting/throttling (v4 and later)

4.1

FreeBSD

mature

Github

4.1

weightadjust

random director with dynamically adjustable weights

4.1 5.1 5.2 6.0 6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

4.1 5.1 5.2 6.0 6.1 6.2 master

UPLEX

wurfl

WURFL by ScientiaMobile (www.scientiamobile.com) gives developers high-performance device detection.

Other

mature

ScientiaMobile Inc.

xcounter

Custom counter

6.0 6.1 master

FreeBSD

development

Github

6.0 6.1 master

xkey

Xkey (Hash-Two, Surrogate keys)

4.1

FreeBSD

mature

Github

4.1

Varnish Software

zlib

Uncompress request’s body before sending it to the backend.

4.1

BSD 2-Clause

development

Github

4.1