If you’re familiar with Varnish already, you know that VMODs extend Varnish functionality and give Varnish the kind of flexibility that helps you deliver content the way you want to. We recently published a brief overview of all currently available Varnish VMODs to give you a high-level overview of all the VMODs that currently exist and want to provide a bit more detail about what the newest VMODs can do for you.
If I were to ask you what is so great about Varnish, you'd probably answer: "the VCL, duh!". And you would be right, but maybe not for the same reason I'm loving it: the Varnish Configuration Language shifts the traditional declarative mindset of configuration to an imperative state.
It gives you great control, allowing you to actually write your policies, but beyond this, it means that plugins (or VMODs) are super easy to write. Because the VCL is imperative, plugins don't have to register themselves, care about hooks, or worry about execution order, making them a library that you can write in a matter of minutes.
And that's what we are going to explain here, step by step. A moderate knowledge of C and usual development tools (git, autotools, etc.) is expected, but nothing crazy, don't worry.