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 |
FreeBSD |
mature |
||||
awsrest |
AWS Signature |
FreeBSD |
development |
||||
basicauth |
Basicauth |
GPLv2 |
mature |
Norse Digital |
|||
blobdigest |
digests and hmacs for BLOBs |
FreeBSD |
mature |
||||
blobsha256 |
SHA256 digests and hmacs for BLOBs |
FreeBSD |
mature |
||||
blobsynth |
Generate synthetic() responses from BLOBs |
Public Domain |
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 (newer versions) |
Cookie (newer versions) |
FreeBSD |
mature |
||||
crypto |
asymmetric signatures (RSA, DSA) in VCL |
FreeBSD |
mature |
||||
curl |
cURL |
FreeBSD |
mature |
||||
dbrw |
Database-driven rewrites |
GPLv2 |
mature |
Norse Digital |
|||
deviceatlas |
DeviceAtlas Mobile Detection |
Other |
mature |
||||
dict |
Dictionary look-up |
GPLv2 |
mature |
Norse Digital |
|||
directors |
Backend selection directors |
FreeBSD |
included |
||||
dns |
DNS |
Apache2 |
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 |
||||
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 |
Reading files that may be updated at intervals |
FreeBSD |
mature |
||||
flagship |
Provide feature flagging & experimentation abilities at the web server level and cache server. |
Apache2 |
development |
AB Tasty |
|||
frozen |
Efficient JSON parsing based on the frozen parser |
FreeBSD |
mature |
||||
gcrypt |
access the libgcrypt library of cryptographic building blocks |
FreeBSD |
mature |
||||
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 |
||||
hoailona |
support use of the SecureHD Policy service provided by Akamai Media Services |
FreeBSD |
mature |
||||
iconv |
iconv character encoding conversions |
FreeBSD |
mature |
||||
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. |
MIT |
development |
IP2Location |
|||
ip2proxy |
A Varnish module that enables the user to find the country, region, city, ISP and proxy information by IP address. |
MIT |
development |
IP2Location |
|||
j |
A JSON formatter for VCL which sucks less |
FreeBSD |
development |
||||
jq |
JSON processor |
BSD 2-Clause |
development |
||||
lang |
Detect language based on the accept-language header |
Other |
mature |
||||
libvmod_unidirectors |
Backend selection directors (alternative from vmod_directors) |
FreeBSD |
mature |
||||
lua |
Lua |
FreeBSD |
prototype |
||||
maxminddb |
Maxmind Geoip |
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 |
||||
pesi |
Varnish Delivery Processor for parallel ESI includes |
FreeBSD |
mature |
||||
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 toolkit |
GPL-3.0-or-later |
mature |
||||
re |
regular expression (regexp) matches and backreferences |
FreeBSD |
mature |
||||
re2 |
access the Google RE2 regular expression engine |
FreeBSD |
mature |
||||
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 |
|||
saintmode |
Saint mode (4.1 or later) |
FreeBSD |
mature |
||||
selector |
match strings associated with backends, regexen and other strings |
FreeBSD |
mature |
||||
slash |
high performance storage engines (stevedores): buddy: in memory with fixed size fellow: on ssd/disk with tiered ram cache, eventually persistent, always consistent |
LGPL-2.1-only |
mature |
||||
soap |
Read SOAP XML messages in HTTP request’s body and expose fields |
BSD 2-Clause |
development |
||||
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 |
master |
||||
urlsort |
URL Sort |
FreeBSD |
mature |
||||
utf8 |
Unicode normalization, case-folding and other operations |
BSD 2-Clause |
mature |
||||
uuid |
UUID |
Apache2 |
mature |
||||
var |
Variable Support |
FreeBSD |
mature |
||||
variable |
Enhanced variable support |
GPLv2 |
mature |
Norse Digital |
|||
vmod-modsecurity |
ModSecurity Binding |
BSD |
alpha |
||||
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 |
||||
zipflow |
Streaming ZIP file generation |
FreeBSD |
development |
||||
zlib |
Uncompress request’s body before sending it to the backend. |
BSD 2-Clause |
development |
Stale VMODS¶
VMOD |
Description |
Docs |
License |
Status |
Link |
VCC |
Support |
---|---|---|---|---|---|---|---|
abtest |
AB Tests value selector |
FreeBSD |
mature |
||||
authentication |
Authentication |
FreeBSD |
mature |
||||
backend_dyn |
create and delete backends at runtime |
FreeBSD |
OBSOLETED by vmod_dynamic |
||||
blobcode |
binary-to-text encodings and decodings for BLOBs |
FreeBSD |
included in Varnish-Cache since release 5.2 as vmod_blob |
||||
boltsort |
boltsort - QueryString params sort |
FreeBSD |
mature |
||||
cookie |
Cookie |
FreeBSD |
included in Varnish-Cache since release 6.4.0 |
||||
dateformat |
Date conversions functions accordingly to a date format (strftime) |
BSD 2-Clause |
mature |
||||
dclass |
dClass Apache DeviceMap |
Apache2 |
mature |
||||
dcs |
Device Classifier Service |
FreeBSD |
SPONSOR LOST INTEREST |
||||
dgram |
Dgram |
FreeBSD |
development |
||||
digest |
Digest |
FreeBSD |
mature |
||||
drupal7 |
Provide Drupal-related functions within Varnish |
FreeBSD |
mature |
||||
esicookies |
inject cookies from Set-Cookie into ESI request headers |
FreeBSD |
development |
||||
file (old) |
File |
FreeBSD |
development |
||||
headerproxy |
Add custom request/response headers via your native programming language. |
FreeBSD |
development |
||||
i18n |
libvmod-i18n |
Other |
mature |
||||
imgdata |
imgdata |
Other |
development |
||||
ipcast |
ipcast |
FreeBSD |
mature |
||||
json |
JSON |
FreeBSD |
development |
||||
ldap |
LDAP authentication |
FreeBSD |
development |
||||
memcached |
memcached |
FreeBSD |
mature |
||||
null |
null - Binary data in synthetic |
FreeBSD |
mature |
||||
ratelimit |
Ratelimit |
FreeBSD |
development |
||||
redirect |
redirect |
FreeBSD |
development |
||||
rfc6052 |
rfc6052 |
FreeBSD |
development |
||||
rtstatus |
RealTime Status Page |
FreeBSD |
mature |
||||
secdown |
Secure download |
FreeBSD |
prototype |
||||
shield |
Shield |
FreeBSD |
mature |
||||
softpurge |
Soft purge |
FreeBSD |
mature |
||||
statsd |
Statsd - Varnish stats |
FreeBSD |
mature |
||||
urlcode |
URL Code |
FreeBSD |
mature |
||||
urlfilter |
libvmod-urlfilter |
Other |
development |
||||
utils |
libvmod-utils |
Other |
mature |
||||
vslp |
VSLP (StateLess Persistence) aka shard |
FreeBSD |
included in Varnish-Cache since release 5.0 as the shard director |