Modules (VMODs)

VMODs are extensions written for Vinyl 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 Vinyl 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 main

FreeBSD

mature

UPLEX gitlab

4.1 6.0 6.2 main

UPLEX

awsrest

AWS Signature

3.0 4.0 4.1 5.0 main

FreeBSD

development

Github

3.0 4.0 4.1 5.0 main

basicauth

Basicauth

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

Norse Digital

blobdigest

digests and hmacs for BLOBs

4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

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 main

Public Domain

mature

UPLEX gitlab

5.2 6.0 6.1 6.2 main

UPLEX

brotli

Vinyl Cache Fetch Processor (VFP) for brotli de-/compression

6.2 main

FreeBSD

mature

UPLEX gitlab

6.2 main

UPLEX

cfg

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

6.0 8.0 main

FreeBSD

mature

Github

6.0 8.0 main

Allenta Consulting S.L.

cluster

simple and easy cache clustering

6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

constant

constants as objects in VCL

6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

cookie (newer versions)

Cookie (newer versions)

6.1 6.2 main

FreeBSD

mature

Github

6.1 6.2 main

UPLEX

crypto

asymmetric signatures (RSA, DSA) in VCL

6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

curl

cURL

3.0 4.0 4.1 6.0 6.0-lts 6.2 6.3 main

FreeBSD

mature

Github

3.0 4.0 4.1 6.0 6.0-lts 6.2 6.3 main

Varnish Software

dbrw

Database-driven rewrites

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

Norse Digital

dict

Dictionary look-up

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

Norse Digital

directors

Backend selection directors

4.0 4.1 main

FreeBSD

included

Github

4.0 4.1 main

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 main

FreeBSD

mature

Github

4.1 5.0 5.1 5.2 6.0 6.2 main

UPLEX

dyncounters

create custom VSC at run time

main

FreeBSD

development

Github

main

ece

Vinyl Cache Module for encrypted Content-Encoding per RFC 8188

main

FreeBSD

development

UPLEX gitlab

main

UPLEX

esiextra

ETag and Last-Modified for ESI

main

FreeBSD

development

Repos

main

UPLEX

etag

ETags generated in Vinyl Cache

main

FreeBSD

development

UPLEX gitlab

main

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

main

FreeBSD

mature

UPLEX

main

UPLEX

flagship

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

main

Apache2

development

Github

main

AB Tasty

frozen

Efficient JSON parsing based on the frozen parser

6.2 main

FreeBSD

mature

UPLEX gitlab

6.2 main

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 main

BSD 2-Clause

mature

Github

4.1 6.0 6.1 main

globalvar

global variables as objects in VCL

6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

gossip

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

6.0 7.6 main

FreeBSD

prototype

Github

6.0 7.6 main

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 main

FreeBSD

mature

UPLEX gitlab

5.0 5.1 5.2 6.1 6.2 main

UPLEX

iconv

iconv character encoding conversions

main

FreeBSD

mature

UPLEX gitlab

main

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.

main

MIT

development

Github

main

IP2Location

ip2proxy

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

main

MIT

development

Github

main

IP2Location

j

A JSON formatter for VCL which sucks less

main

FreeBSD

development

UPLEX gitlab

main

UPLEX

jq

JSON processor

main

BSD 2-Clause

development

Github

main

lang

Detect language based on the accept-language header

3.0 4.0 4.1 5.2 6.2

BSD-like

mature

Github

3.0 4.0 4.1 5.2 6.2

libvmod_unidirectors

Backend selection directors (alternative from vmod_directors)

4.1 main

FreeBSD

mature

Github

4.1 main

lua

Lua

4.1

FreeBSD

prototype

Github

4.1

maxminddb

Maxmind Geoip

main

FreeBSD

mature

Github

main

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 main

FreeBSD

development

Github

5.1 main

parseform

Parse POST field

4.1 5.1 main

FreeBSD

development

Github

4.1 5.1 main

pcre2

access the PCRE2 regular expression library

5.1

FreeBSD

development

Repos

5.1

UPLEX

pesi

Vinyl Cache Delivery Processor for parallel ESI includes

main

FreeBSD

mature

UPLEX gitlab

main

UPLEX

pipe

Vinyl Cache Delivery and Fetch Processors that pipe responses through external commands

main

FreeBSD

development

UPLEX gitlab

main

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 toolkit

2.0

GPL-3.0-or-later

mature

2.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 main

FreeBSD

mature

UPLEX gitlab

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

UPLEX

re2

access the Google RE2 regular expression engine

4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

UPLEX

redis

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

6.0 7.6 main

FreeBSD

mature

Github

6.0 7.6 main

Allenta Consulting S.L.

remoteip

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

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

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 main

FreeBSD

mature

UPLEX gitlab

4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

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

main

LGPL-2.1-only

mature

UPLEX gitlab

main

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 main

FreeBSD

included

Github

3.0 4.0 4.1 main

Varnish Software

taskvar

task scoped variables as objects in VCL

6.1 6.2 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

tbf

Token Bucket Filtering

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

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 main

FreeBSD

mature

UPLEX gitlab

6.1 6.2 main

UPLEX

tus

TUS Upload Server (Proxy TUS to single upload)

main

FreeBSD

master

UPLEX gitlab

main

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 main

BSD 2-Clause

mature

Github

4.1 6.0 6.1 main

uuid

UUID

3.0 4.0 4.1 5.0 5.1 5.2 6.0 main

Apache2

mature

Github

3.0 4.0 4.1 5.0 5.1 5.2 6.0 main

valkey

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

main

FreeBSD

development

Github

main

Allenta Consulting S.L.

var

Variable Support

4.1

FreeBSD

mature

Github

4.1

Varnish Software

variable

Enhanced variable support

6.0 7.0 main

GPLv3+

mature

Repos

6.0 7.0 main

Norse Digital

vmod-modsecurity

ModSecurity Binding

6.1 6.2 main

BSD

alpha

Github

6.1 6.2 main

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 main

FreeBSD

mature

UPLEX gitlab

4.1 5.1 5.2 6.0 6.1 6.2 main

UPLEX

xcounter

Custom counter

6.0 6.1 main

FreeBSD

development

Github

6.0 6.1 main

xkey

Xkey (Hash-Two, Surrogate keys)

4.1

FreeBSD

mature

Github

4.1

Varnish Software

zipflow

Streaming ZIP file generation

main

FreeBSD

development

UPLEX

main

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 main

FreeBSD

SPONSOR LOST INTEREST

UPLEX gitlab

3.0 4.0 4.1 5.0 5.1 5.2 6.0 6.1 6.2 main

UPLEX

dgram

Dgram

4.1

FreeBSD

development

Github

4.1

digest

Digest

4.1

FreeBSD

mature

Github

4.1

Varnish Software

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

BSD

mature

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

GPL

development

Github

3.0

utils

libvmod-utils

3.0

BSD

mature

Github

3.0

vslp

VSLP (StateLess Persistence) aka shard

4.0 4.1 main

FreeBSD

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

Repos

4.0 4.1 main

UPLEX