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 |
FreeBSD |
mature |
||||
all_healthy |
director to use more than one probe or a different backend’s probe |
FreeBSD |
mature |
||||
authentication |
Authentication |
FreeBSD |
mature |
||||
awsrest |
AWS Signature |
FreeBSD |
development |
||||
backend_dyn |
create and delete backends at runtime |
FreeBSD |
development |
||||
basicauth |
Basicauth |
GPLv2 |
mature |
Norse Digital |
|||
blobcode |
binary-to-text encodings and decodings for BLOBs |
FreeBSD |
included in Varnish-Cache since release 5.2 as vmod_blob |
||||
blobdigest |
digests and hmacs for BLOBs |
FreeBSD |
mature |
||||
blobsha256 |
SHA256 digests and hmacs for BLOBs |
FreeBSD |
development |
||||
blobsynth |
Generate synthetic() responses from BLOBs |
Public Domain |
mature |
||||
boltsort |
boltsort - QueryString params sort |
FreeBSD |
mature |
||||
brotli |
Varnish Fetch Processor (VFP) for brotli de-/compression |
FreeBSD |
mature |
||||
cfg |
Access to local / remote .ini / .json files, access to environment variables, and execution of local / remote Lua and JavaScript scripts |
FreeBSD |
mature |
Allenta Consulting S.L. |
|||
cluster |
simple and easy cache clustering |
FreeBSD |
mature |
||||
constant |
constants as objects in VCL |
FreeBSD |
mature |
||||
cookie |
Cookie |
FreeBSD |
mature |
||||
cookie (newer versions) |
Cookie (newer versions) |
FreeBSD |
mature |
||||
crashhandler |
Crashhandler |
FreeBSD |
mature |
||||
crypto |
asymmetric signatures (RSA, DSA) in VCL |
FreeBSD |
mature |
||||
curl |
cURL |
FreeBSD |
mature |
||||
dateformat |
Date conversions functions accordingly to a date format (strftime) |
BSD 2-Clause |
mature |
||||
dbrw |
Database-driven rewrites |
GPLv2 |
mature |
Norse Digital |
|||
dclass |
dClass Apache DeviceMap |
Apache2 |
mature |
||||
dcs |
Device Classifier Service |
FreeBSD |
mature |
||||
deviceatlas |
DeviceAtlas Mobile Detection |
Other |
mature |
||||
dgram |
Dgram |
FreeBSD |
development |
||||
dict |
Dictionary look-up |
GPLv2 |
mature |
Norse Digital |
|||
digest |
Digest |
FreeBSD |
mature |
||||
directors |
Backend selection directors |
FreeBSD |
included |
||||
dns |
DNS |
Apache2 |
mature |
||||
drupal7 |
Provide Drupal-related functions within Varnish |
FreeBSD |
mature |
||||
dynamic |
Dynamic Backends from DNS lookups and service discovery from SRV records |
FreeBSD |
mature |
||||
dyncounters |
create custom VSC at run time |
FreeBSD |
development |
||||
ece |
Varnish Module for encrypted Content-Encoding per RFC 8188 |
FreeBSD |
development |
||||
esicookies |
inject cookies from Set-Cookie into ESI request headers |
FreeBSD |
development |
||||
esiextra |
ETag and Last-Modified for ESI |
FreeBSD |
development |
||||
etag |
ETags generated in Varnish |
FreeBSD |
development |
||||
example |
example vmod - hello world! |
FreeBSD |
prototype |
||||
fiftyonedegrees |
51Degrees Device Detection |
EUPL |
mature |
5 1 D e g r e e s . m o b i L i m i t e d |
|||
file |
File |
FreeBSD |
development |
||||
frozen |
Efficient JSON parsing based on the frozen parser |
FreeBSD |
mature |
||||
gcrypt |
access the libgcrypt library of cryptographic building blocks |
FreeBSD |
development |
||||
geoip2 |
Query MaxMind GeoIP2 DB files |
BSD 2-Clause |
mature |
||||
globalvar |
global variables as objects in VCL |
FreeBSD |
mature |
||||
gossip |
Dump information about contents stored in the cache to a JSON file |
FreeBSD |
development |
Allenta Consulting S.L. |
|||
hashids |
Hashids encode and decode support |
MIT |
development |
Schibsted Media Group |
|||
header |
Header manipulation |
FreeBSD |
mature |
||||
headerproxy |
Add custom request/response headers via your native programming language. |
FreeBSD |
development |
||||
hoailona |
support use of the SecureHD Policy service provided by Akamai Media Services |
FreeBSD |
mature |
||||
i18n |
libvmod-i18n |
Other |
mature |
||||
imgdata |
imgdata |
Other |
development |
||||
ip2location |
A Varnish module that enables the user to find the country, region, city, ISP and proxy information by IP address. |
MIT |
development |
IP2Location |
|||
ipcast |
ipcast |
FreeBSD |
mature |
||||
jq |
JSON processor |
BSD 2-Clause |
development |
||||
json |
JSON |
FreeBSD |
development |
||||
ldap |
LDAP authentication |
FreeBSD |
development |
||||
libvmod_unidirectors |
Backend selection directors (alternative from vmod_directors) |
FreeBSD |
mature |
||||
lua |
Lua |
FreeBSD |
prototype |
||||
maxminddb |
Maxmind Geoip |
FreeBSD |
prototype |
||||
memcached |
memcached |
FreeBSD |
mature |
||||
null |
null - Binary data in synthetic |
FreeBSD |
mature |
||||
oob_probe |
assign an out-of-band health probe to a backend |
FreeBSD |
development |
||||
otp |
One-time password generator(HOTP/TOTP) |
FreeBSD |
development |
||||
parseform |
Parse POST field |
FreeBSD |
development |
||||
pcre2 |
access the PCRE2 regular expression library |
FreeBSD |
development |
||||
pipe |
Varnish Delivery and Fetch Processors that pipe responses through external commands |
FreeBSD |
development |
||||
queryfilter |
Simple query string filter/sort module |
Apache2 |
mature |
||||
querystring |
Advanced query-string filtering. |
GPLv3+ |
mature |
||||
ratelimit |
Ratelimit |
FreeBSD |
development |
||||
re |
regular expression (regexp) matches and backreferences |
FreeBSD |
mature |
||||
re2 |
access the Google RE2 regular expression engine |
FreeBSD |
mature |
||||
redirect |
redirect |
FreeBSD |
development |
||||
redis |
Access to Redis Server / Redis Cluster databases, including Redis Sentinel support |
FreeBSD |
mature |
Allenta Consulting S.L. |
|||
remoteip |
Determine the actual client IP address from X-Forwarded-For or similar header |
GPLv3+ |
mature |
Norse Digital |
|||
rfc6052 |
rfc6052 |
FreeBSD |
development |
||||
rtstatus |
RealTime Status Page |
FreeBSD |
mature |
||||
saintmode |
Saint mode (4.1 or later) |
FreeBSD |
mature |
||||
secdown |
Secure download |
FreeBSD |
prototype |
||||
selector |
match strings associated with backends, regexen and other strings |
FreeBSD |
mature |
||||
shield |
Shield |
FreeBSD |
mature |
||||
soap |
Read SOAP XML messages in HTTP request’s body and expose fields |
BSD 2-Clause |
development |
||||
softpurge |
Soft purge |
FreeBSD |
mature |
||||
statsd |
Statsd - Varnish stats |
FreeBSD |
mature |
||||
std |
std - the standard VMOD |
FreeBSD |
included |
||||
taskvar |
task scoped variables as objects in VCL |
FreeBSD |
mature |
||||
tbf |
Token Bucket Filtering |
GPLv2 |
mature |
Norse Digital |
|||
threescale |
API Proxy |
FreeBSD |
mature |
||||
throttle |
Throttle |
FreeBSD |
mature |
||||
timers |
Varnish Timers (timing&duration) |
FreeBSD |
mature |
||||
timeutils |
Time Utils |
FreeBSD |
mature |
||||
topvar |
top request (across all ESI levels) scoped variables as objects in VCL |
FreeBSD |
mature |
||||
tus |
TUS Upload Server (Proxy TUS to single upload) |
FreeBSD |
development |
||||
urlcode |
URL Code |
FreeBSD |
mature |
||||
urlfilter |
libvmod-urlfilter |
Other |
development |
||||
urlsort |
URL Sort |
FreeBSD |
mature |
||||
utf8 |
Unicode normalization, case-folding and other operations |
BSD 2-Clause |
mature |
||||
utils |
libvmod-utils |
Other |
mature |
||||
uuid |
UUID |
Apache2 |
mature |
||||
var |
Variable Support |
FreeBSD |
mature |
||||
variable |
Enhanced variable support |
GPLv2 |
mature |
Norse Digital |
|||
vslp |
VSLP (StateLess Persistence) aka shard |
FreeBSD |
included in Varnish-Cache since release 5.0 as the shard director |
||||
vsthrottle |
vsthrottle - Rate-limiting/throttling (v4 and later) |
FreeBSD |
mature |
||||
weightadjust |
random director with dynamically adjustable weights |
FreeBSD |
mature |
||||
wurfl |
WURFL by ScientiaMobile (www.scientiamobile.com) gives developers high-performance device detection. |
Other |
mature |
ScientiaMobile Inc. |
|||
xcounter |
Custom counter |
FreeBSD |
development |
||||
xkey |
Xkey (Hash-Two, Surrogate keys) |
FreeBSD |
mature |
||||
zlib |
Uncompress request’s body before sending it to the backend. |
BSD 2-Clause |
development |