Skip to content

Varnish Improvement Proposals

Dridi Boukelmoune edited this page Jul 1, 2024 · 45 revisions

A VIP is a document for hashing out the details of non-trivial ideas for improving Varnish.

The VIP procedure starts with a discussions on varnish-dev@.

As that discussions gels out, phk@ will decide if a a VIP page should be created to document, mock-up and record what the improvement will be, and how it will be implemented etc.

Open VIPs

VIP1: PRIV_* visibility and lifetime control

VIP2: VCL typed functions

VIP3: VCL implemented VMODS

VIP6: What does pipe mean in Varnish5?

VIP7: Least connection director

VIP8: No pipe in builtin.vcl in V5

VIP9: Expand VCL object support

VIP9B: Extend vmod object scopes

VIP12: vmod polymorphism (for type conversions)

VIP13: VMOD versioning

VIP14: *.body access

VIP15: Specifying source address for outgoing sockets

VIP20: Varnish ABI and packaging

VIP21: Avoid modified Zlib

VIP22: include backend connection in director lookup

VIP 23: Refactor VSL to support extracting structured data from "binary" log payloads

VIP 24: Hitpass turning into hitmiss after ttl

VIP 25: Inconsistent responses when VFP fails during streaming

VIP 27: Move some VCL variables to the catflap facility

VIP29: VCL labels and backend.list ( r option etc.)

VIP30: Plumbing: vcl_raw() and vcl_pipe()

VIP31: Backend connection queue

VIP32: VSL-API and Unset headers

VIP33: Socket.* CLI commands

VIP34: Conservative map usage in shared memory

VIP35: Retire libvgz

On Hold VIPs

VIP 18: RST specification for code generation

VIP28: designated vmod object methods

Closed VIPs

VIP4: Restrict VMOD function call sites

VIP5: Remote test-run reporting facility

VIP10: Differentiate out "out of workspace" errors

VIP11: Shared Memory revamp

VIP16: Retire parameters aliases

VIP 17: Enable Unix domain sockets for listen and backend addresses

VIP 19: Declare ENUM types in VCC for VMODs

VIP 26: limit private prefetch

VIP page structure

Individual VIP pages should follow this overall template:

"Synopsis" - One paragraph summing the proposal up

"Depends on" - (optional) other VIPs which must be completed before this is possible/makes sense

"Why?" - Explain why we need this, what is it we cannot do without it.

"How?" - Outline how this VIP can be implemented

(more to come as experience is gained)

Clone this wiki locally