core — the render engine
The Rust render engine that parses and renders IDML — the parse→scene→text→compose→GPU pipeline, the wasm boundary, and the dual rasterization backends.
In short core is the heart of paged — a Rust workspace that reads an IDML
package and renders it pixel-faithfully. It's public (dual-licensed) and is the
only repo every other consumer depends on, across a wasm/package boundary.
What it does
- Parses full Adobe IDML — the design map, spreads, frames, stories with threading, cascade-resolved styles, gradients, and placed images.
- Lays out text with an InDesign-calibrated Knuth–Plass composer (hyphenation, tab stops, multi-font runs).
- Renders through WebGPU (Vello) for forward output, with a tiny-skia CPU backend kept for headless fidelity testing.
- Offers a mutation layer (insert/delete/edit, all undoable), a headless
ViewerSession, PDF export, and byte-faithful round-trip serialization.
How it's organized
A multi-crate workspace following the pipeline: paged-parse → paged-scene →
paged-text → paged-compose → paged-gpu, with paged-renderer orchestrating
and paged-fidelity running the ΔE2000/SSIM diff harness. The scripting surface
lives in paged-script (Boa) + paged-run (headless CLI), and the public
scripting catalog in paged-introspect.
How you consume it
Published to npm as @paged-media/canvas-wasm, introspect-wasm, and
idml-viewer (versioned 0.<protocol>.<patch>). No consumer takes a source
dependency. The renderer reference documents its behavior;
the scripting layer documents its paged.* surface.
Recent activity
- 2026-08-19ci: bypass the Azure apt mirror — it is the actual fault2dc00d1
- 2026-08-19ci: bound every apt call — three hung today, one had hung for a monthdd21c6d
- 2026-08-19ci: bound the apt call in the wasm-size gate — it is hanging right nowa86e6ca
- 2026-08-19fidelity: tell "inconclusive" apart from "regressed"2fd8d7d
- 2026-08-19fonts: make the core/corpus duplication detectable instead of silent39abf2b
- 2026-08-19fidelity: the "hard" gate actually gates — it had never run herebbda68a
- 2026-08-19gen: one list of samples, and `emit-all` so consumers stop copying it81f429d
- 2026-08-19scene: a 30x6 grid matrix from the corpus — 179 layouts nothing had opened35db59b
Repositories
A tour of the repositories that make up paged — the engine, the editor and its server, the viewer, the registry, the docs, and the brand kit.
editor — the editing frontend
The commercial desktop-publishing frontend — a React shell driving the engine wasm in a Web Worker on an OffscreenCanvas, with panels, gestures, scripting, and plugin integration.