fontina0.2.0

Next: 0006 — CLI first; the desktop shell is deferred,  Previous: 0004 — Project license: MIT OR Apache-2.0,  Up: Architecture decision records

0005 — WOFF and WOFF2 decoding

Status: accepted, 2026-09-03

Context

fontations reads sfnt data only. WOFF 1.0 is per-table zlib; WOFF 2.0 is Brotli with glyf/loca transforms.

Decision

WOFF 1.0: a small hand-written unwrapper in fontina-core::container (flate2). WOFF 2.0: the pure-Rust woff2-patched crate. Both produce sfnt bytes that then go through the normal fontations path.

Consequences

woff2-patched does not support the hmtx transform; such files fail with a clear error and are counted in scan failures. If that becomes common, an FFI fallback to google/woff2 behind a feature flag is the planned mitigation.