Varnish Modules (VMODs) extend VCL with functions that would be awkward or impossible to write in VCL alone. The list below is grouped by what each module is for; modules marked Add-on are licensed separately.
acceptFilter content negotiation headers.
cookieplusCreate, manipulate, and filter Cookie and Set-Cookie headers.
headerplusCreate, manipulate, and filter HTTP headers.
rewriteCreate rulesets for URL pattern matching and substitution.
uriParse and manipulate Uniform Resource Identifiers (URI).
urlplusParse, normalize, and manipulate URLs and query strings.
brotliCompress the response body with Brotli.
edgestashPersonalize cached responses with Mustache templates.
imageConvert JPEG and PNG images to WebP.
slicerFetch responses with range requests.
xbodyAccess and manipulate request and response bodies.
activednsCreate DNS groups for dynamic backends in udo.
directorsStandard directors with round robin, fallback, random, hash, and shard policies.
gotoSimple dynamic backend director with round-robin load balancing.
leastconnStatic backend director that picks the backend with the fewest active connections.
nodes Add-onDefine backends using configuration files, with support for dynamic updates.
probe_proxyLet probes pass through Varnish before going to the backend.
s3S3 compatible dynamic backend director with AWSv4 request signing.
udoStatic and dynamic backend director with multiple load balancing policies.
purgePurge single objects.
staleKeep serving content when the backend is down with stale-if-error.
ykeyTag-based cache invalidation.
kv Add-onKey-value storage with optional TTLs and distributed support.
kvstoreFast key-value store with several data types and scopes.
mseControl the Massive Storage Engine 3.
mse4Control the Massive Storage Engine 4.
sqlite3Perform operations on SQLite databases from VCL.
aclplusMatch client IPs against dynamic ACLs.
asnDetermine a client's Autonomous System Number (ASN) based on IP.
cryptoCreate and verify HMAC signatures, and hash and encode strings.
cwt Add-onVerify and validate CBOR Web Tokens (CWT) for access control.
jwtCreate, parse, and verify JWT and JWS tokens.
ratelimit Add-onLimit request rates locally or globally across multiple Varnish instances.
resolverVerify a user's identity with forward-confirmed reverse DNS (FCrDNS).
vsthrottleRate-limit clients based on any request attribute.
datadomeBot and online fraud protection through DataDome.
deviceatlasClassify client device type based on User-Agent with DeviceAtlas 2.
deviceatlas3 Add-onClassify client device type based on User-Agent with DeviceAtlas 3.
mmdbDetermine a client's geolocation based on IP.
akamaiIntegrate data and configuration between Varnish and Akamai.
awsAWS Signature V4 signing, S3 backend support, and Secrets Manager integration.
httpSend HTTP requests and parse the response from VCL.
h2Get information about HTTP/2 transport.
proxyGet information about Proxy Protocol V2 connections.
sessionGet information about sessions.
tcpGet information about TCP connections.
tlsGet information about TLS connections.
unixGet information about Unix Domain Socket (UDS) connections.
accountingCategorize traffic and create more granular statistics.
rtstatusCreate a simple monitoring web page.
statOutput statistics in Prometheus or JSON format.
fileServe responses from the file system like a web server.
prngGenerate large synthetic responses for benchmarking.
synthbackendCreate custom response bodies in VCL.
blobManipulate binary data.
digestHash and encode strings with various algorithms.
formatBuild strings with more complex formats.
jsonParse and access JSON.
stdStandard library of general-purpose functions.
strHelper functions for string manipulation.
utilsAdditional utility functions.