Documentation
Vip 00

VIP-00 --- General VIP Guidelines

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in RFC 2119 (opens in a new tab).

draft optional


1. Motivation

The purpose of this VIP is to establish the general guidelines for VIP submissions.

2. Short Description

This VIP will set the groundwork for transparent VIP submission and review processes.

Defining clear guidelines has the inherent benefit of channeling community input in a healthy and ordered manner.

3. Overview

This document is organized as follows: first, we define the concept of VIP Types, and then we set out to define the guidelines for submitting Language and Capability VIPs, finally, we close with a list of current VIPs, and their defined languages and capabilities.

4. VIP Types

This document recognizes two types of VIPs:

  • Language VIPs: these VIPs define languages validators may use in a "validator-language" tag.
  • Capability VIPs: these VIPs define capabilities validators may declare in "validator-language" tags and use within themselves.

4.1 Language VIPs

Language VIPs MUST define:

  • The {LANGUAGE} placeholder value to use in a "v-language" tag.
  • The expected semantics of the .content field of a "v"-tagged event.
  • The manner in which the event and index arguments should be passed to the validator code.
  • The manner in which the validator's return value should be interpreted (including any exceptional conditions that may arise).
  • The functional specification of the validator's execution environment.
  • Any additional environmental considerations that should be observed (eg. global locale settings, seeds, etc.).
  • Any pre-defined facilities a validator may use.

4.2 Capability VIPs

Capability VIPs MUST define:

  • The capability identification string to use.
  • The list of facilities enabled by utilizing the capability in question.
  • Any dependencies incurred.

5. VIP List

Index of all defined VIPs:

List of defined "v-language" tags:

LanguageVIP
javascript01
javascript-unsafe-web-worker01

List of defined capabilities and their associated language:

CapabilityLanguageVIP
Asyncjavascript02
Datejavascript03
Streamsjavascript04
Encodingjavascript05
URLjavascript06
Cryptojavascript07
XMLHttpRequestjavascript08
Fetchjavascript09