Source: libvmod-selector Maintainer: Varnish Package Maintainers Uploaders: Michael Fladischer , Section: web Priority: optional Build-Depends: autoconf-archive, debhelper-compat (= 13), libev-dev, libhiredis-dev, libssl-dev, libvarnishapi-dev (>= 7.5~), pkgconf, python3-docutils, varnish (>= 7.5~), Standards-Version: 4.7.0 Vcs-Browser: https://salsa.debian.org/varnish-team/libvmod-selector Vcs-Git: https://salsa.debian.org/varnish-team/libvmod-selector.git Homepage: https://code.uplex.de/uplex-varnish/libvmod-selector Rules-Requires-Root: no Package: varnish-selector Architecture: any Depends: ${Varnish:ABI}, ${misc:Depends}, ${shlibs:Depends}, Description: match strings with backends, regexen and other strings Varnish Module (VMOD) for matching strings against sets of fixed strings. A VMOD object may also function as an associative array, mapping the matched string to one or more of a backend, another string, an integer, or a regular expression. The string may also map to a subroutine that can be invoked. . The VMOD is intended to support a variety of use cases that are typical for VCL deployments, such as: . * Determining the backend based on the Host header or the prefix of the URL. * Rewriting the URL or a header. * Generating redirect responses, based on a header or the URL. * Permitting or rejecting request methods. * Matching the Basic Authentication credentials in an Authorization request header. * Matching media types in the Content-Type header of a backend response to determine if the content is compressible. * Accessing data by string match, as in an associative array, or by numeric index, as in a standard array. * Dispatching subroutine calls based on string matches. * Executing conditional logic that depends on features of the request or response that can be determined by matching headers or URLs. . Operations such as these are commonly implemented in native VCL with an if-elsif-elsif sequence of string comparisons or regex matches. As the number of matches increases, such a sequence becomes cumbersome and scales poorly -- the time needed to execute the sequence increases with the number of matches to be performed. With the VMOD, the strings to be matched are declared in a tabular form in vcl_init, and the operation is executed in a few lines.