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

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

awsrest

AWS Signature

3.0 4.0 4.1 5.0 master

FreeBSD

development

Github

3.0 4.0 4.1 5.0 master

basicauth

Basicauth

4.0 4.1 5.1 6.0

GPLv2

mature

Repos

4.0 4.1 5.1 6.0

Norse Digital

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 - master

FreeBSD

mature

Repos

4.1 - master

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

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 (newer versions)

Cookie (newer versions)

6.1 6.2 master

FreeBSD

mature

Github

6.1 6.2 master

UPLEX

crypto

asymmetric signatures (RSA, DSA) in VCL

6.1 6.2 master

FreeBSD

mature

UPLEX gitlab

6.1 6.2 master

UPLEX

curl

cURL

3.0 4.0 4.1 6.0 6.0-lts 6.2 6.3 master

FreeBSD

mature

Github

3.0 4.0 4.1 6.0 6.0-lts 6.2 6.3 master

Varnish Software

dbrw

Database-driven rewrites

6.0 6.3 7.1

GPLv2

mature

Repos

6.0 6.3 7.1

Norse Digital

deviceatlas

DeviceAtlas Mobile Detection

Other

mature

Varnish Software

dict

Dictionary look-up

4.1 5.1 6.0

GPLv2

mature

Repos

4.1 5.1 6.0

Norse Digital

directors

Backend selection directors

4.0 4.1 master

FreeBSD

included

Github

4.0 4.1 master

Varnish Software UPLEX

dns

DNS

4.1 - master

Apache2

mature

Github

4.1 - master

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

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

Reading files that may be updated at intervals

master

FreeBSD

mature

UPLEX

master

UPLEX

flagship

Provide feature flagging & experimentation abilities at the web server level and cache server.

master

Apache2

development

Github

master

AB Tasty

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

6.0 6.1 6.5 7.0 - master

FreeBSD

mature

Repos

6.0 6.1 6.5 7.0 - master

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

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

iconv

iconv character encoding conversions

master

FreeBSD

mature

UPLEX gitlab

master

UPLEX

ip2location

A Varnish module that enables the user to find the country, region, city, latitude, longitude, zip code, time zone, ISP, domain name, connection type, area code, weather, mobile network, elevation, usage type by IP address.

master

MIT

development

Github

master

IP2Location

ip2proxy

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

j

A JSON formatter for VCL which sucks less

master

FreeBSD

development

UPLEX gitlab

master

UPLEX

jq

JSON processor

master

BSD 2-Clause

development

Github

master

lang

Detect language based on the accept-language header

3.0 4.0 4.1 5.2 6.2

Other

mature

Github

3.0 4.0 4.1 5.2 6.2

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

master

FreeBSD

mature

Github

master

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

pesi

Varnish Delivery Processor for parallel ESI includes

master

FreeBSD

mature

UPLEX gitlab

master

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 6.3 7.2.1

Apache2

mature

Github

3.0 4.0 4.1 5.2 6.2 6.3 7.2.1

querystring

Advanced query-string filtering.

4.1 5.x 6.x master

GPLv3+

mature

Github

4.1 5.x 6.x master

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

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 7.1

GPLv3+

mature

Repos

6.0 6.1 6.2 6.3 7.1

Norse Digital

saintmode

Saint mode (4.1 or later)

4.1

FreeBSD

mature

Github

4.1

Varnish Software

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

slash

high performance storage engines (stevedores): buddy: in memory with fixed size fellow: on ssd/disk with tiered ram cache, eventually persistent, always consistent

master

LGPL-2.1-only

mature

UPLEX gitlab

master

UPLEX

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

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

6.0 6.3 7.1

GPLv2

mature

Repos

6.0 6.3 7.1

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

master

UPLEX gitlab

master

UPLEX

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

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

6.0 6.3 7.1

GPLv2

mature

Repos

6.0 6.3 7.1

Norse Digital

vmod-modsecurity

ModSecurity Binding

6.1 6.2 master

BSD

alpha

Github

6.1 6.2 master

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

zipflow

Streaming ZIP file generation

master

FreeBSD

development

UPLEX

master

UPLEX

zlib

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

4.1

BSD 2-Clause

development

Github

4.1

Stale VMODS

VMOD

Description

Docs

License

Status

Link

VCC

Support

abtest

AB Tests value selector

3.0

FreeBSD

mature

Github

3.0

authentication

Authentication

3.0

FreeBSD

mature

Github

3.0

backend_dyn

create and delete backends at runtime

5.1 6.0

FreeBSD

OBSOLETED by vmod_dynamic

Repos

5.1 6.0

UPLEX

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

boltsort

boltsort - QueryString params sort

3.0 4.0

FreeBSD

mature

Github

3.0 4.0

cookie

Cookie

4.1

FreeBSD

included in Varnish-Cache since release 6.4.0

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

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

SPONSOR LOST INTEREST

UPLEX gitlab

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 master

UPLEX

dgram

Dgram

4.1

FreeBSD

development

Github

4.1

digest

Digest

4.1

FreeBSD

mature

Github

4.1

Varnish Software

drupal7

Provide Drupal-related functions within Varnish

3.0 4.0

FreeBSD

mature

Repos

3.0 4.0

esicookies

inject cookies from Set-Cookie into ESI request headers

3.0

FreeBSD

development

Repos

3.0

UPLEX

file (old)

File

3.0

FreeBSD

development

Github

3.0

headerproxy

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

4.1

FreeBSD

development

Github

4.1

i18n

libvmod-i18n

3.0

Other

mature

Github

3.0

imgdata

imgdata

3.0

Other

development

Github

3.0

ipcast

ipcast

3.0

FreeBSD

mature

Github

3.0

Varnish Software

json

JSON

3.0

FreeBSD

development

Github

3.0

ldap

LDAP authentication

3.0

FreeBSD

development

Github

3.0

memcached

memcached

3.0

FreeBSD

mature

Github

3.0

null

null - Binary data in synthetic

3.0

FreeBSD

mature

Github

3.0

ratelimit

Ratelimit

3.0

FreeBSD

development

Github

3.0

redirect

redirect

3.0

FreeBSD

development

Github

3.0

rfc6052

rfc6052

4.1

FreeBSD

development

Github

4.1

rtstatus

RealTime Status Page

3.0

FreeBSD

mature

Github

3.0

Varnish Software

secdown

Secure download

3.0

FreeBSD

prototype

Github

3.0

shield

Shield

3.0

FreeBSD

mature

Github

3.0

softpurge

Soft purge

4.1

FreeBSD

mature

Github

4.1

Varnish Software

statsd

Statsd - Varnish stats

3.0

FreeBSD

mature

Github

3.0

urlcode

URL Code

4.1

FreeBSD

mature

Github

4.1

urlfilter

libvmod-urlfilter

3.0

Other

development

Github

3.0

utils

libvmod-utils

3.0

Other

mature

Github

3.0

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