Architecture decision records
Each ADR records one decision: its context, the options considered, the decision and its consequences. Accepted ADRs are amended in place, with the date of each amendment, rather than replaced. The files live in docs/adr/.
- ADR 0001: Go + libvips (vipsgen + thin cgo shim)
- ADR 0002: Multi-dialect URL API over one canonical model
- ADR 0003: Security model
- ADR 0004: Caching strategy
- ADR 0005: Docker image strategy
- ADR 0006: License policy
- ADR 0007: Config JSON Schema, multi-format config files, config schema / config validate
- ADR 0008: OpenAPI 3.1 document generated from Go types
- ADR 0009: TypeScript packages live in packages/, a Bun workspace at the repo root
- ADR 0010: ONNX Runtime is loaded with purego, not a second cgo package
- ADR 0010: Video thumbnails decode through a second, build-tagged cgo package over FFmpeg
- ADR 0011: EPS/PostScript through Ghostscript in a sandboxed subprocess, gpl image only, off by default
- ADR 0012: Video transformations run in their own subsystem over FFmpeg filter graphs
- ADR 0013: Official clients share one spec, one conformance fixture and one generator
- ADR 0014: HTTP QUERY on the query dialect
- ADR 0015: The documentation website is Astro Starlight, built from the repository’s Markdown