VMODs

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.

URLs and headers

  • 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.

Request and response bodies

  • 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.

Backend directors and routing

  • 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.

Caching and invalidation

  • purgePurge single objects.
  • staleKeep serving content when the backend is down with stale-if-error.
  • ykeyTag-based cache invalidation.

Storage and state

  • 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.

Security and access control

  • 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.

Device detection and geolocation

  • 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.

Backend and cloud integrations

  • 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.

Connection and protocol information

  • 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.

Monitoring and statistics

  • accountingCategorize traffic and create more granular statistics.
  • rtstatusCreate a simple monitoring web page.
  • statOutput statistics in Prometheus or JSON format.

Response generation

  • fileServe responses from the file system like a web server.
  • prngGenerate large synthetic responses for benchmarking.
  • synthbackendCreate custom response bodies in VCL.

Utilities

  • 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.

Documented in separate manuals

  • otel: Export metrics, logs, and traces with OpenTelemetry. See the Varnish Otel manual.
  • vha: Replicate cache content between Varnish servers. See the Varnish High Availability manual.

®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203