[6.0] aa2d8f524 document vmod $ABI
dridi.boukelmoune at gmail.com
Wed Oct 31 13:08:17 UTC 2018
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Wed Sep 12 10:50:06 2018 +0200
document vmod $ABI
Text mostly taken from ecdebdc792942165ba71b58ff6816decb2d89bef
diff --git a/doc/sphinx/reference/vmod.rst b/doc/sphinx/reference/vmod.rst
index df6f5c7d9..209c68188 100644
@@ -51,6 +51,7 @@ data structures that do all the hard work.
The std VMODs vmod.vcc file looks somewhat like this::
$Module std 3
+ $ABI strict
$Function STRING toupper(STRING_LIST)
$Function STRING tolower(STRING_LIST)
@@ -59,7 +60,17 @@ The std VMODs vmod.vcc file looks somewhat like this::
The first line gives the name of the module and the manual section where
the documentation will reside.
-The second line specifies an optional "Event" function, which will be
+The ``$ABI`` line is optional (possible values ``strict`` (default)
+and ``vrt``) and allows to specify that a vmod is integrating with the
+blessed ``vrt`` interface provided by ``varnishd`` or go deeper in the
+stack. As a general rule of thumb you are considered "on your own" if
+your VMOD uses more than the VRT (Varnish RunTime), in which case it
+needs to be built for the exact Varnish version.
+``$ABI vrt`` means that a module complies to the VRT and only needs to
+be rebuilt when breaking changes are introduced to the VRT API.
+The third line specifies an optional "Event" function, which will be
called whenever a VCL program which imports this VMOD is loaded or
transitions to any of the warm, active, cold or discarded states.
More on this below.
More information about the varnish-commit