Commit 1fcc0776 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Overhaul this even more.

Write a page about how to get on the list.
parent 2f32cffd
......@@ -4,64 +4,130 @@ from __future__ import print_function
import glob
import json
vmods = {}
for fn in glob.glob("vmod_*.json"):
print(fn)
fi = open(fn)
j = json.loads(fi.read())
assert "name" in j
assert j["name"] not in vmods
vmods[j["name"]] = j
nms = vmods.keys()
nms.sort()
#######################################################################
# Polish
for i in nms:
v = vmods[i]
v["link1"] = ""
v["link2"] = ""
if "github" in v:
v["repos"] = "https://github.com/" + v["github"][0] + "/" + v["github"][1]
v["link1"] += " `Github <%s>`_ " % v["repos"]
elif "repos" in v:
v["link1"] += " `Repos <%s>`_ " % v["repos"]
elif "product" in v:
v["link1"] = "`Product <" + v["product"] + ">`_"
if "rev" in v:
for j in v["rev"]:
u = v["rev"][j]["url_vcc"]
v["link2"] += " `%s <%s>`_ " % (j, u)
if "support" in v and v["support"] == "Uplex":
v["support"] = ":ref:`business_uplex`"
if "support" in v and v["support"] == "Varnish Software":
v["support"] = ":ref:`business_varnish_software`"
#######################################################################
# Size columns
h = ["VMOD", "License", "Status", "Support", "Link", "VCC"]
f = ["name", "license", "status", "support", "link1", "link2"]
w = [0] * len(h)
for i in nms:
v = vmods[i]
for j in range(len(w)):
if f[j] in v:
v[f[j]] = v[f[j]].strip()
w[j] = max(w[j], len(v[f[j]]))
#######################################################################
# Emit output
fo = open("index.rst", "w")
fo.write('''
import sys
class vmod(object):
def __init__(self, filename):
self.filename = filename
self.load()
def load(self):
fi = open(self.filename)
self.j = json.loads(fi.read())
fi.close()
def save(self):
fo = open(self.filename, "w")
fo.write(json.dumps(self.j, sort_keys=True, indent=4, separators=(",", ": ")))
fo.close()
def name(self):
return self.j["name"]
def repos(self):
i = self.j.get("repos")
if i != None:
return i
g = self.j.get("github")
if g != None:
return "https://github.com/" + g["user"] + "/" + g["project"]
def versions(self):
r = self.j.get("rev")
if r != None:
return r.keys()
g = self.j.get("github")
if g != None:
return g["branches"].keys()
return list()
def url_vcc(self, rev):
r = self.j.get("rev")
if r != None:
return r[rev]["url_vcc"]
g = self.j.get("github")
if g != None:
s = "https://raw.githubusercontent.com/"
s += g["user"] + "/"
s += g["project"] + "/"
s += g["branches"][rev] + "/"
s += g["vcc_path"]
return s
return None
def www_table(self):
l = []
l.append(self.j.get("name"))
l.append(self.j.get("desc"))
l.append(self.j.get("license"))
l.append(self.j.get("status"))
s = ""
if "github" in self.j:
s += " `Github <%s>`_ " % self.repos()
elif "repos" in self.j:
s += " `Repos <%s>`_ " % self.repos()
l.append(s)
s = ""
for r in self.versions():
vcc = self.url_vcc(r)
s += " `%s <%s>`_ " % (r, vcc)
l.append(s)
i = self.j.get("support")
s = ""
if i != None:
for j in i:
if j == "Uplex":
s += " :ref:`business_uplex`"
elif j == "Varnish Software":
s += ":ref:`business_varnish_software`"
elif j != None:
s += " " + j
l.append(s)
return l
def load_all():
vmods = {}
for fn in glob.glob("vmod_*.json"):
v = vmod(fn)
vmods[v.name()] = v
return vmods
def make_www_table():
vmods = load_all()
nms = vmods.keys()
nms.sort()
l = []
#######################################################################
# Size columns
h = ["VMOD", "Description", "License", "Status", "Link", "VCC", "Support"]
w = [0] * len(h)
for i in nms:
x = vmods[i].www_table()
l.append(x)
for j in range(len(w)):
if x[j] == None:
x[j] = ""
else:
x[j] = x[j].strip()
w[j] = max(w[j], len(x[j]))
#######################################################################
# Emit output
fo = open("index.rst", "w")
fo.write('''
.. _vmods:
Varnish Modules
......@@ -77,28 +143,39 @@ we will be happy to include it.
For other Varnish Cache related projects and utilities, please see the
:ref:`Varnish Extras <extras>`
Instructions :ref:`how to get your VMOD on this list <vmods_reg>`.
.. toctree::
:hidden:
howto.rst
''')
def sep(ln="-"):
for i in w:
fo.write("+" + ln * (i + 2))
fo.write("+\n")
sep("-")
for i in range(len(h)):
fo.write("| " + h[i].ljust(w[i]) + " ")
fo.write("|\n")
sep("-")
for i in nms:
v = vmods[i]
for j in range(len(w)):
if f[j] in v:
fo.write("| " + v[f[j]].ljust(w[j]) + " ")
else:
fo.write("| " + "".ljust(w[j]) + " ")
def sep(ln="-"):
for i in w:
fo.write("+" + ln * (i + 2))
fo.write("+\n")
sep("-")
for i in range(len(h)):
fo.write("| " + h[i].ljust(w[i]) + " ")
fo.write("|\n")
sep()
sep("=")
for i in l:
for j in range(len(w)):
fo.write("| " + i[j].ljust(w[j]) + " ")
fo.write("|\n")
sep()
if __name__ == "__main__":
exit (0)
vmods = load_all()
if len(sys.argv) == 1:
make_www_table()
elif len(sys.argv) == 2 and sys.argv[1] == "--polish":
vmods = load_all()
for i in vmods:
vmods[i].save()
.. _vmods_reg:
How to register your VMOD
=========================
To get your VMOD listed on the Varnish Project homepage
you need to create a small JSON file which describes it
and submit a pull request to our
`homepage github repos <https://github.com/varnishcache/homepage/tree/master/R1/source/vmods>`_
There are a lot of JSON files there already, but they are
machine generated based on older registrations, so they are
not indicative of what we would like them to look like.
There are some examples at the bottom of this page.
At some point in the future we would like to be able to offer some
continuous integration facilities to help VMOD authors maintain
their code. (A volunteer to implement this would be more than welcome)
The JSON file should have a single object ("dictionary")
and it should have members as described below.
All VMODS
---------
All VMODs MUST have these members:
name
~~~~
This is the name in the "import FOOBAR;" VCL statement.
date
~~~~
Format "YYYY-MM-DD", date entry was last revised.
desc
~~~~
Description, compact one-line description of what the VMOD does.
(Don't repeat the VMOD name here)
license
~~~~~~~
We prefer "FreeBSD", "Apache2", "GPLv2" in that order, but we are
not going to pass judgement, it's your choice.
status
~~~~~~
Allowed values:
* "included" -- those included in the varnish distro
* "prototype" -- Just playing around here...
* "development" -- API still subject to change
* "mature" -- We're trying to be serious here
Additionally the following optional members are possible:
maintainer
~~~~~~~~~~
Email address of VMOD maintainer
support
~~~~~~~
List of companies which will support this VMOD on commercial terms.
product
~~~~~~~
URL to product description web-page for commercial offerings
Github projects
---------------
Since the majority of VMODs are github projects, we have tried
to make that very easy.
In the toplevel object add a object member called "github" with
these members:
user
~~~~
Github username
project
~~~~~~~
Github project name
vcc_path
~~~~~~~~
Relative path to the VCC file for the VMOD
branches
~~~~~~~~
An object mapping Varnish version to github branches.
If your github project has multiple branches corresponding to
varnish versions, it could look like this::
"branches": {
"3.0": "3.0",
"4.0": "4.0",
"4.1": "master"
},
If your VMOD only supports Varnish 3.0 from the github projects
master branch::
"branches": {
"3.0": "master"
},
Non Github projects
-------------------
You must these two members:
repos
~~~~~
URL of the repository
rev
~~~
An object mapping Varnish version to URL where the VCC file can be found.
For instance:
"rev": {
"3.0": "http://myvmod.example.com/source/3.0/vmod.vcc",
"4.1": "http://myvmod.example.com/source/4.1/vmod.vcc"
}
Examples
--------
A github project::
{
"date": "2016-04-14",
"desc": "Murphy Field Calibrator",
"github": {
"branches": {
"3.0": "3.0"
"4.1": "master"
},
"project": "libvmod-murphy-cal",
"user": "ACME engineering",
"vcc_path": "src/vmod_murphy.vcc"
},
"license": "FreeBSD",
"name": "murphy",
"status": "prototype",
"support": [ "ACME VMODs and Explosives Inc." ],
"maintainer": "Samuel.B.Nobody@example.com"
}
A VMOD not on github::
{
"date": "1999-12-31",
"desc": "Y2K fixer",
"license": "BeerWare",
"name": "Y2K",
"repos": "https://example.com/we/are/so/hosed",
"rev": {
"4.1": {
"url_vcc": "https://example.com/we/are/so/hosed/vmod.vcc"
}
},
"status": "prototype"
}
{
"date": "YYYY-MM-DD",
"desc": "`AB Tests value selector",
"github": [
"Destination",
"libvmod-abtest"
],
"desc": "AB Tests value selector",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-abtest",
"user": "Destination",
"vcc_path": "src/vmod_abtest.vcc"
},
"license": "FreeBSD",
"name": "abtest",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/Destination/libvmod-abtest/master/src/vmod_abtest.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Authentication",
"github": [
"pariahsoft",
"libvmod-authentication"
],
"desc": "Authentication",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-authentication",
"user": "pariahsoft",
"vcc_path": "src/vmod_authentication.vcc"
},
"license": "FreeBSD",
"name": "authentication",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/pariahsoft/libvmod-authentication/master/src/vmod_authentication.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`AWS Signature",
"github": [
"xcir",
"libvmod-awsrest"
],
"desc": "AWS Signature",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-awsrest",
"user": "xcir",
"vcc_path": "src/vmod_awsrest.vcc"
},
"license": "FreeBSD",
"name": "awsrest",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/xcir/libvmod-awsrest/master/src/vmod_awsrest.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`backend\\_dyn -- create and delete backends at runtime",
"desc": "backend\\_dyn -- create and delete backends at runtime",
"license": "FreeBSD",
"name": "backend_dyn",
"repos": "https://code.uplex.de/uplex-varnish/libvmod-backend_dyn",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/libvmod-backend_dyn/blobs/raw/master/src/vmod.vcc"
}
},
"status": "In development",
"support": "Uplex"
}
\ No newline at end of file
"status": "development",
"support": [
"Uplex"
]
}
{
"date": "YYYY-MM-DD",
"desc": "`Basicauth",
"desc": "Basicauth",
"license": "GPLv2",
"name": "basicauth",
"repos": "http://git.gnu.org.ua/cgit/vmod-basicauth.git",
......@@ -9,6 +9,8 @@
"url_vcc": "http://git.gnu.org.ua/cgit/vmod-basicauth.git/plain/src/vmod_basicauth.vcc"
}
},
"status": "Used in production",
"support": "NXC International"
}
\ No newline at end of file
"status": "mature",
"support": [
"NXC International"
]
}
{
"date": "YYYY-MM-DD",
"desc": "`blobcode -- binary-to-text encodings and decodings for BLOBs",
"desc": "blobcode -- binary-to-text encodings and decodings for BLOBs",
"license": "FreeBSD",
"name": "blobcode",
"repos": "https://code.uplex.de/uplex-varnish/libvmod-blobcode",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/libvmod-blobcode/blobs/raw/master/src/vmod_blobcode.vcc"
}
},
"status": "In development",
"support": "Uplex"
}
\ No newline at end of file
"status": "development",
"support": [
"Uplex"
]
}
{
"date": "YYYY-MM-DD",
"desc": "`boltsort - QueryString params sort",
"github": [
"vimeo",
"libvmod-boltsort"
],
"desc": "boltsort - QueryString params sort",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-boltsort",
"user": "vimeo",
"vcc_path": "src/vmod_boltsort.vcc"
},
"license": "FreeBSD",
"name": "boltsort",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/vimeo/libvmod-boltsort/master/src/vmod_boltsort.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Cookie",
"github": [
"lkarsten",
"libvmod-cookie"
],
"desc": "Cookie",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-cookie",
"user": "lkarsten",
"vcc_path": "src/vmod_cookie.vcc"
},
"license": "FreeBSD",
"name": "cookie",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/lkarsten/libvmod-cookie/master/src/vmod_cookie.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Crashhandler",
"github": [
"varnish",
"libvmod-crashhandler"
],
"desc": "Crashhandler",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-crashhandler",
"user": "varnish",
"vcc_path": "src/vmod_crashhandler.vcc"
},
"license": "FreeBSD",
"name": "crashhandler",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-crashhandler/master/src/vmod_crashhandler.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`cURL",
"github": [
"varnish",
"libvmod-curl"
],
"desc": "cURL",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-curl",
"user": "varnish",
"vcc_path": "src/vmod_curl.vcc"
},
"license": "FreeBSD",
"name": "curl",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-curl/master/src/vmod_curl.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Database-driven rewrites",
"desc": "Database-driven rewrites",
"license": "GPLv2",
"name": "dbrw",
"repos": "http://git.gnu.org.ua/cgit/vmod-dbrw.git",
......@@ -9,6 +9,8 @@
"url_vcc": "http://git.gnu.org.ua/cgit/vmod-dbrw.git/plain/src/vmod_dbrw.vcc"
}
},
"status": "Used in production",
"support": "NXC International"
"status": "mature",
"support": [
"NXC International"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`dClass Apache DeviceMap",
"github": [
"TheWeatherChannel",
"dClass"
],
"desc": "dClass Apache DeviceMap",
"github": {
"branches": {
"4.1": "master"
},
"project": "dClass",
"user": "TheWeatherChannel",
"vcc_path": "servers/src/vmod_dclass4.vcc"
},
"license": "Apache2",
"name": "dclass",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/TheWeatherChannel/dClass/master/servers/src/vmod_dclass4.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`dcs - Device Classifier Service",
"desc": "dcs - Device Classifier Service",
"license": "FreeBSD",
"name": "dcs",
"repos": "https://code.uplex.de/uplex-varnish/dcs_classifier",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/dcs_classifier/blobs/raw/master/src/vmod_dcs4.vcc"
}
},
"status": "Used in production",
"support": "Uplex"
"status": "mature",
"support": [
"Uplex"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`DeviceAtlas Mobile Detection",
"desc": "DeviceAtlas Mobile Detection",
"license": "Other",
"name": "deviceatlas",
"product": "https://www.varnish-software.com/product/varnish-mobile-device-detection",
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Dgram",
"github": [
"mmb",
"vmod_dgram"
],
"desc": "Dgram",
"github": {
"branches": {
"4.1": "master"
},
"project": "vmod_dgram",
"user": "mmb",
"vcc_path": "src/vmod_dgram.vcc"
},
"license": "FreeBSD",
"name": "dgram",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/mmb/vmod_dgram/master/src/vmod_dgram.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Digest",
"github": [
"varnish",
"libvmod-digest"
],
"desc": "Digest",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-digest",
"user": "varnish",
"vcc_path": "src/vmod_digest.vcc"
},
"license": "FreeBSD",
"name": "digest",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-digest/master/src/vmod_digest.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`directors - the directors VMOD",
"desc": "Backend selection directors",
"github": {
"branches": {
"3.0": "3.0",
"4.0": "4.0",
"4.1": "4.1",
"master": "master"
},
"project": "varnish-cache",
"user": "varnishcache",
"vcc_path": "lib/libvmod_directors/vmod.vcc"
},
"license": "FreeBSD",
"name": "directors",
"status": "Used in production",
"support": "Varnish Software"
"status": "included",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`DNS",
"github": [
"kenshaw",
"libvmod-dns"
],
"desc": "DNS",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-dns",
"user": "kenshaw",
"vcc_path": "src/vmod_dns.vcc"
},
"license": "Apache2",
"name": "dns",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/kenshaw/libvmod-dns/master/src/vmod_dns.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`esicookies",
"desc": "esicookies",
"license": "FreeBSD",
"name": "esicookies",
"repos": "https://code.uplex.de/uplex-varnish/libvmod-esicookies",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/libvmod-esicookies/blobs/raw/master/src/vmod_esicookies.vcc"
}
},
"status": "Used in production",
"support": "Uplex"
"status": "mature",
"support": [
"Uplex"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`example vmod - hello world!",
"github": [
"varnish",
"libvmod-example"
],
"desc": "example vmod - hello world!",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-example",
"user": "varnish",
"vcc_path": "src/vmod_example.vcc"
},
"license": "FreeBSD",
"name": "example",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-example/master/src/vmod_example.vcc"
}
},
"status": "Proof of concept",
"support": "Varnish Software"
"status": "prototype",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`File",
"github": [
"academia-edu",
"libvmod-file"
],
"desc": "File",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-file",
"user": "academia-edu",
"vcc_path": "src/vmod_file.vcc"
},
"license": "FreeBSD",
"name": "file",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/academia-edu/libvmod-file/master/src/vmod_file.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`gwist",
"github": [
"gquintard",
"libvmod-gwist"
],
"desc": "gwist",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-gwist",
"user": "gquintard",
"vcc_path": "src/vmod_gwist.vcc"
},
"license": "Other",
"name": "gwist",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/gquintard/libvmod-gwist/master/src/vmod_gwist.vcc"
}
},
"status": "Proof of concept"
"status": "prototype"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Header manipulation",
"github": [
"varnish",
"libvmod-header"
],
"desc": "Header manipulation",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-header",
"user": "varnish",
"vcc_path": "src/vmod_header.vcc"
},
"license": "FreeBSD",
"name": "header",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-header/master/src/vmod_header.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`libvmod-i18n",
"github": [
"cosimo",
"libvmod-i18n"
],
"desc": "libvmod-i18n",
"github": {
"branches": {
"3.0": "3.0"
},
"project": "libvmod-i18n",
"user": "cosimo",
"vcc_path": "src/vmod.vcc"
},
"license": "Other",
"name": "i18n",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/cosimo/libvmod-i18n/3.0/src/vmod.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`imgdata",
"github": [
"webcarrot",
"libvmod-imgdata"
],
"desc": "imgdata",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-imgdata",
"user": "webcarrot",
"vcc_path": "src/vmod_imgdata.vcc"
},
"license": "Other",
"name": "imgdata",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/webcarrot/libvmod-imgdata/master/src/vmod_imgdata.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`ip2location",
"github": [
"thlc",
"libvmod-ip2location"
],
"desc": "ip2location",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-ip2location",
"user": "thlc",
"vcc_path": "src/vmod_ip2location.vcc"
},
"license": "FreeBSD",
"name": "ip2location",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/thlc/libvmod-ip2location/master/src/vmod_ip2location.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`ipcast",
"github": [
"lkarsten",
"libvmod-ipcast"
],
"desc": "ipcast",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-ipcast",
"user": "lkarsten",
"vcc_path": "src/vmod_ipcast.vcc"
},
"license": "FreeBSD",
"name": "ipcast",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/lkarsten/libvmod-ipcast/master/src/vmod_ipcast.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`JSON",
"github": [
"academia-edu",
"libvmod-json"
],
"desc": "JSON",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-json",
"user": "academia-edu",
"vcc_path": "src/vmod_json.vcc"
},
"license": "FreeBSD",
"name": "json",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/academia-edu/libvmod-json/master/src/vmod_json.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`LDAP authentication",
"github": [
"xcir",
"libvmod-ldap"
],
"desc": "LDAP authentication",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-ldap",
"user": "xcir",
"vcc_path": "src/vmod_ldap.vcc"
},
"license": "FreeBSD",
"name": "ldap",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/xcir/libvmod-ldap/master/src/vmod_ldap.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Logger",
"github": [
"Dridi",
"libvmod-logger"
],
"desc": "Logger",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-logger",
"user": "Dridi",
"vcc_path": "src/vmod_logger.vcc"
},
"license": "FreeBSD",
"name": "logger",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/Dridi/libvmod-logger/master/src/vmod_logger.vcc"
}
},
"status": "Proof of concept"
"status": "prototype"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Lua",
"github": [
"flygoast",
"libvmod-lua"
],
"desc": "Lua",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-lua",
"user": "flygoast",
"vcc_path": "src/vmod_lua.vcc"
},
"license": "FreeBSD",
"name": "lua",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/flygoast/libvmod-lua/master/src/vmod_lua.vcc"
}
},
"status": "Proof of concept"
"status": "prototype"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Maxmind Geoip",
"github": [
"simonvik",
"libvmod_maxminddb"
],
"desc": "Maxmind Geoip",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod_maxminddb",
"user": "simonvik",
"vcc_path": "src/vmod_maxminddb.vcc"
},
"license": "FreeBSD",
"name": "maxminddb",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/simonvik/libvmod_maxminddb/master/src/vmod_maxminddb.vcc"
}
},
"status": "Proof of concept"
"status": "prototype"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`memcached",
"github": [
"sodabrew",
"libvmod-memcached"
],
"desc": "memcached",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-memcached",
"user": "sodabrew",
"vcc_path": "src/vmod_memcached.vcc"
},
"license": "FreeBSD",
"name": "memcached",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/sodabrew/libvmod-memcached/master/src/vmod_memcached.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`null - Binary data in synthetic",
"github": [
"varnish",
"libvmod-null"
],
"desc": "null - Binary data in synthetic",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-null",
"user": "varnish",
"vcc_path": "src/vmod_null.vcc"
},
"license": "FreeBSD",
"name": "null",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-null/master/src/vmod_null.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`oob\\_probe -- assign an out-of-band health probe to a backend",
"desc": "oob\\_probe -- assign an out-of-band health probe to a backend",
"license": "FreeBSD",
"name": "oob_probe",
"repos": "https://code.uplex.de/uplex-varnish/oob_probe",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/oob_probe/blobs/raw/master/src/vmod.vcc"
}
},
"status": "In development",
"support": "Uplex"
"status": "development",
"support": [
"Uplex"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`POST/GET/Cookie parse",
"github": [
"xcir",
"libvmod-parsereq"
],
"desc": "POST/GET/Cookie parse",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-parsereq",
"user": "xcir",
"vcc_path": "src/vmod_parsereq.vcc"
},
"license": "FreeBSD",
"name": "parsereq",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/xcir/libvmod-parsereq/master/src/vmod_parsereq.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`libvmod-queryfilter",
"github": [
"andrew-canaday",
"libvmod-queryfilter"
],
"desc": "libvmod-queryfilter",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-queryfilter",
"user": "andrew-canaday",
"vcc_path": "src/vmod_queryfilter.vcc"
},
"license": "Apache2",
"name": "queryfilter",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/andrew-canaday/libvmod-queryfilter/master/src/vmod_queryfilter.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`QueryString",
"github": [
"Dridi",
"libvmod-querystring"
],
"desc": "QueryString",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-querystring",
"user": "Dridi",
"vcc_path": "src/vmod.vcc"
},
"license": "FreeBSD",
"name": "querystring",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/Dridi/libvmod-querystring/master/src/vmod.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Ratelimit",
"github": [
"tobixen",
"libvmod-ratelimit"
],
"desc": "Ratelimit",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-ratelimit",
"user": "tobixen",
"vcc_path": "src/vmod_ratelimit.vcc"
},
"license": "FreeBSD",
"name": "ratelimit",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/tobixen/libvmod-ratelimit/master/src/vmod_ratelimit.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`re - regexp matches and backreferences",
"desc": "re - regexp matches and backreferences",
"license": "FreeBSD",
"name": "re",
"repos": "https://code.uplex.de/uplex-varnish/libvmod-re",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/libvmod-re/blobs/raw/master/src/vmod_re.vcc"
}
},
"status": "Used in production",
"support": "Uplex"
"status": "mature",
"support": [
"Uplex"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`redirect",
"github": [
"xcir",
"libvmod-redirect"
],
"desc": "redirect",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-redirect",
"user": "xcir",
"vcc_path": "src/vmod_redirect.vcc"
},
"license": "FreeBSD",
"name": "redirect",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/xcir/libvmod-redirect/master/src/vmod_redirect.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Redis",
"github": [
"brandonwamboldt",
"libvmod-redis"
],
"desc": "Redis",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-redis",
"user": "brandonwamboldt",
"vcc_path": "src/vmod_redis.vcc"
},
"license": "FreeBSD",
"name": "redis",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/brandonwamboldt/libvmod-redis/master/src/vmod_redis.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`rfc6052",
"github": [
"toreanderson",
"libvmod-rfc6052"
],
"desc": "rfc6052",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-rfc6052",
"user": "toreanderson",
"vcc_path": "src/vmod_rfc6052.vcc"
},
"license": "FreeBSD",
"name": "rfc6052",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/toreanderson/libvmod-rfc6052/master/src/vmod_rfc6052.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`RealTime Status Page",
"github": [
"varnish",
"libvmod-rtstatus"
],
"desc": "RealTime Status Page",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-rtstatus",
"user": "varnish",
"vcc_path": "src/vmod_rtstatus.vcc"
},
"license": "FreeBSD",
"name": "rtstatus",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-rtstatus/master/src/vmod_rtstatus.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Saint mode (4.1 or later)",
"github": [
"varnish",
"libvmod-saintmode"
],
"desc": "Saint mode (4.1 or later)",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-saintmode",
"user": "varnish",
"vcc_path": "src/vmod_saintmode.vcc"
},
"license": "FreeBSD",
"name": "saintmode",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-saintmode/master/src/vmod_saintmode.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Secure download",
"github": [
"footplus",
"libvmod-secdown"
],
"desc": "Secure download",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-secdown",
"user": "footplus",
"vcc_path": "src/vmod.vcc"
},
"license": "FreeBSD",
"name": "secdown",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/footplus/libvmod-secdown/master/src/vmod.vcc"
}
},
"status": "Proof of concept"
"status": "prototype"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Shield",
"github": [
"varnish",
"libvmod-shield"
],
"desc": "Shield",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-shield",
"user": "varnish",
"vcc_path": "src/vmod_shield.vcc"
},
"license": "FreeBSD",
"name": "shield",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-shield/master/src/vmod_shield.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Soft purge",
"github": [
"varnish",
"libvmod-softpurge"
],
"desc": "Soft purge",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-softpurge",
"user": "varnish",
"vcc_path": "src/vmod_softpurge.vcc"
},
"license": "FreeBSD",
"name": "softpurge",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-softpurge/master/src/vmod_softpurge.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Statsd - Varnish stats",
"github": [
"jib",
"libvmod-statsd"
],
"desc": "Statsd - Varnish stats",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-statsd",
"user": "jib",
"vcc_path": "src/vmod_statsd.vcc"
},
"license": "FreeBSD",
"name": "statsd",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/jib/libvmod-statsd/master/src/vmod_statsd.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`std - the standard VMOD",
"desc": "std - the standard VMOD",
"github": {
"branches": {
"3.0": "3.0",
"4.0": "4.0",
"4.1": "4.1",
"master": "master"
},
"project": "varnish-cache",
"user": "varnishcache",
"vcc_path": "lib/libvmod_std/vmod.vcc"
},
"license": "FreeBSD",
"name": "std",
"status": "Used in production",
"support": "Varnish Software"
"status": "included",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`synth",
"github": [
"carlosabalde",
"libvmod-synth"
],
"desc": "synth",
"github": {
"branches": {
"4.1": "4.1"
},
"project": "libvmod-synth",
"user": "carlosabalde",
"vcc_path": "src/vmod_synth.vcc"
},
"license": "FreeBSD",
"name": "synth",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/carlosabalde/libvmod-synth/4.1/src/vmod_synth.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`tbf - Token Bucket Filtering",
"desc": "tbf - Token Bucket Filtering",
"license": "GPLv2",
"name": "tbf",
"repos": "http://git.gnu.org.ua/cgit/vmod-tbf.git",
......@@ -9,6 +9,8 @@
"url_vcc": "http://git.gnu.org.ua/cgit/vmod-tbf.git/plain/src/vmod_tbf.vcc"
}
},
"status": "Used in production",
"support": "NXC International"
"status": "mature",
"support": [
"NXC International"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`API Proxy",
"github": [
"3scale",
"libvmod-3scale"
],
"desc": "API Proxy",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-3scale",
"user": "3scale",
"vcc_path": "src/vmod_threescale.vcc"
},
"license": "FreeBSD",
"name": "threescale",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/3scale/libvmod-3scale/master/src/vmod_threescale.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Throttle",
"github": [
"nand2",
"libvmod-throttle"
],
"desc": "Throttle",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-throttle",
"user": "nand2",
"vcc_path": "src/vmod_throttle.vcc"
},
"license": "FreeBSD",
"name": "throttle",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/nand2/libvmod-throttle/master/src/vmod_throttle.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Varnish Timers (timing&duration)",
"github": [
"jib",
"libvmod-timers"
],
"desc": "Varnish Timers (timing&duration)",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-timers",
"user": "jib",
"vcc_path": "src/vmod_timers.vcc"
},
"license": "FreeBSD",
"name": "timers",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/jib/libvmod-timers/master/src/vmod_timers.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Time Utils",
"github": [
"jthomerson",
"libvmod-timeutils"
],
"desc": "Time Utils",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-timeutils",
"user": "jthomerson",
"vcc_path": "src/vmod_timeutils.vcc"
},
"license": "FreeBSD",
"name": "timeutils",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/jthomerson/libvmod-timeutils/master/src/vmod_timeutils.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`URL Code",
"github": [
"fastly",
"libvmod-urlcode"
],
"desc": "URL Code",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-urlcode",
"user": "fastly",
"vcc_path": "src/vmod_urlcode.vcc"
},
"license": "FreeBSD",
"name": "urlcode",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/fastly/libvmod-urlcode/master/src/vmod_urlcode.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`libvmod-urlfilter",
"github": [
"kataweb",
"libvmod-urlfilter"
],
"desc": "libvmod-urlfilter",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-urlfilter",
"user": "kataweb",
"vcc_path": "src/vmod_urlfilter.vcc"
},
"license": "Other",
"name": "urlfilter",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/kataweb/libvmod-urlfilter/master/src/vmod_urlfilter.vcc"
}
},
"status": "In development"
"status": "development"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`URL Sort",
"github": [
"cyberroadie",
"varnish-urlsort"
],
"desc": "URL Sort",
"github": {
"branches": {
"3.0": "master"
},
"project": "varnish-urlsort",
"user": "cyberroadie",
"vcc_path": "vmod/src/vmod_urlsort.vcc"
},
"license": "FreeBSD",
"name": "urlsort",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/cyberroadie/varnish-urlsort/master/vmod/src/vmod_urlsort.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`libvmod-utils",
"github": [
"thomsonreuters",
"libvmod-utils"
],
"desc": "libvmod-utils",
"github": {
"branches": {
"3.0": "master"
},
"project": "libvmod-utils",
"user": "thomsonreuters",
"vcc_path": "src/vmod_utils.vcc"
},
"license": "Other",
"name": "utils",
"rev": {
"3.0": {
"url_vcc": "https://raw.githubusercontent.com/thomsonreuters/libvmod-utils/master/src/vmod_utils.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`UUID",
"github": [
"Sharecare",
"libvmod-uuid"
],
"desc": "UUID",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-uuid",
"user": "Sharecare",
"vcc_path": "src/vmod_uuid.vcc"
},
"license": "Apache2",
"name": "uuid",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/Sharecare/libvmod-uuid/master/src/vmod_uuid.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Variable Support",
"github": [
"varnish",
"libvmod-var"
],
"desc": "Variable Support",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-var",
"user": "varnish",
"vcc_path": "src/vmod_var.vcc"
},
"license": "FreeBSD",
"name": "var",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-var/master/src/vmod_var.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Variable",
"desc": "Variable",
"license": "GPLv2",
"name": "variable",
"repos": "http://git.gnu.org.ua/cgit/vmod-variable.git/",
......@@ -9,6 +9,8 @@
"url_vcc": "http://git.gnu.org.ua/cgit/vmod-variable.git/plain/src/variable.vcc"
}
},
"status": "Used in production",
"support": "NXC International"
"status": "mature",
"support": [
"NXC International"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`VSLP (StateLess Persistence) - consistent hashing Director VMOD",
"desc": "VSLP (StateLess Persistence) - consistent hashing Director VMOD",
"license": "FreeBSD",
"name": "vslp",
"repos": "https://code.uplex.de/uplex-varnish/libvmod-vslp",
......@@ -9,6 +9,8 @@
"url_vcc": "https://code.uplex.de/uplex-varnish/libvmod-vslp/blobs/raw/master/src/vmod_vslp.vcc"
}
},
"status": "Used in production",
"support": "Uplex"
"status": "mature",
"support": [
"Uplex"
]
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`vsthrottle - Rate-limiting/throttling (v4 and later)",
"github": [
"varnish",
"libvmod-vsthrottle"
],
"desc": "vsthrottle - Rate-limiting/throttling (v4 and later)",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-vsthrottle",
"user": "varnish",
"vcc_path": "src/vmod_vsthrottle.vcc"
},
"license": "FreeBSD",
"name": "vsthrottle",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-vsthrottle/master/src/vmod_vsthrottle.vcc"
}
},
"status": "Used in production"
"status": "mature"
}
\ No newline at end of file
{
"date": "YYYY-MM-DD",
"desc": "`Xkey (Hash-Two, Surrogate keys)",
"github": [
"varnish",
"libvmod-xkey"
],
"desc": "Xkey (Hash-Two, Surrogate keys)",
"github": {
"branches": {
"4.1": "master"
},
"project": "libvmod-xkey",
"user": "varnish",
"vcc_path": "src/vmod_xkey.vcc"
},
"license": "FreeBSD",
"name": "xkey",
"rev": {
"4.1": {
"url_vcc": "https://raw.githubusercontent.com/varnish/libvmod-xkey/master/src/vmod_xkey.vcc"
}
},
"status": "Used in production",
"support": "Varnish Software"
"status": "mature",
"support": [
"Varnish Software"
]
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment