# tdewolff/canvas

Vector graphics in Go

Repository: https://github.com/tdewolff/canvas
Canonical: https://ross.abutalabs.com/products/tdewolff-canvas
Language: Go
License: MIT
License Family: permissive
Topics: path, vector-graphics, html-canvas, opengl, cairo, svg, eps, rasterizer, canvas, pdf
Last push: 2026-08-22T21:12:41+00:00

## Health v2 (maintenance only)
Score: 77/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 35, longevity 100
- inputs: {"age_days": 3392, "days_push": 11, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1833, forks 122 (observed 2026-08-28T04:05:42.398483+00:00)

## What it is
A Go library providing a common vector drawing target that can output SVG, PDF, EPS, raster images, HTML Canvas via WASM, OpenGL, and Gio. It includes path manipulation (flattening, stroking, dashing, boolean operations), text formatting with font embedding/subsetting, and serves as a Cairo or node-canvas alternative in Go.

## Use cases
- generate pdf documents with vector graphics in go
- render svg images programmatically
- convert text and fonts to outlines
- draw paths with precise dashing and stroking
- rasterize vector graphics to png images
- render latex formulas as vector paths
- perform boolean operations on paths
- embed and subset fonts in generated documents

## When to choose
- you need a pure-Go vector graphics library without cgo dependencies
- you need consistent output across multiple formats like SVG, PDF, EPS, and PNG
- you need advanced text layout with complex scripts, RTL support, and font subsetting
- you want a Cairo or node-canvas alternative in Go

## When to avoid
- you need a full GUI application framework rather than a drawing library
- you need 3D graphics or game rendering
- you need bitmap image editing rather than vector drawing

## Facets
- artifact type: library
- maturity: active
- function: graphics, image-processing, pdf, math
- domain: graphics, web-development, developer-tools
- platform: go, cross-platform, wasm
- tags: vector-graphics, rasterizer, path-manipulation, font-subsetting, cairo-alternative, text-layout, latex, svg

## Member repositories
- tdewolff/canvas (main) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:42.398483+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:18:40.634332+00:00, confidence not recorded.
  - readme: https://github.com/tdewolff/canvas (fetched 2026-08-28T04:05:42.398483+00:00, sha 605e2a117694)
- Data as of 2026-08-30T08:39:29.467469+00:00.
