Vg is an OCaml module for declarative 2D vector graphics. In Vg, images are values that denote functions mapping points of the cartesian plane to colors. The module provides combinators to define and compose these values.
Renderers for PDF, SVG, Cairo and the HTML canvas are distributed with the module. An API allows to implement new renderers.
Vg depends only on Gg. The SVG renderer has no dependency, the PDF renderer depends on Uutf and Otfm, the HTML canvas renderer depends on js_of_ocaml, the Cairo renderer depends on cairo2. Vg and its renderers are distributed under the ISC license.