Architecture

One application package with a reusable font engine and a shared browser view tree.

StatusAlpha
StabilityVerify file paths against the current source

Runebender’s root runebender Cargo package builds the native editor, headless commands, and font-engine library. The separate web/ Cargo workspace reuses the application view tree with an in-memory browser host. Sibling repositories are independent projects.

Source map

PathResponsibility
src/lib.rsFont-engine module root.
src/main.rsExecutable composition root.
src/font/Canonical Project, source operations, history, persistence, interpolation, and compilation.
src/outline/, src/text/, src/analysis/Reusable geometry, shaping, and measurement.
src/formats/Source-format adapters and persistent metadata.
src/automation/Agent and live-editor operation contracts.
src/workflows/, src/ui/Saved workflows and toolkit-independent editor data.
src/application/editor/User intent, commands, sessions, and tools.
src/application/view/Xilem views, panels, canvas, themes, and design tokens.
src/application/platform/Files, dialogs, watching, live IPC, and screenshots.
web/Browser host for the shared widgets.

Read the relevant module header before changing code. The repository’s AGENTS.md carries local working rules and validation constraints.

Ownership

font::project::Project is the authoritative in-memory document. Babelfont owns canonical glyph geometry. Stable layer and object identities retain exact UFO-only values that Babelfont cannot express. Norad values are constructed at explicit import, export, and serialization boundaries; they are not a second live font model.

Views read workspace state and dispatch commands. Application editor code interprets gestures and user intent. Reusable font behavior belongs in the engine, which has no Xilem, Masonry, dialog, or window dependency. Native and browser editing use the same canonical operations.

Change routing

ChangeStart with
Editor tool or shortcutsrc/application/editor/tools/, src/application/actions.rs
Canvas or panelsrc/application/view/canvas/, src/application/view/panels/
Theme or reusable controlassets/themes/default/, src/application/view/theme.rs, design.rs, recipes.rs
Glyph outline or interpolationsrc/outline/, src/font/
UFO or Designspace preservationsrc/font/persistence/, src/formats/
Live agent toolsrc/automation/, src/application/platform/live*.rs
Browser behaviorweb/, then the shared application source

The full file tree is in the source repository. For build checks and interface work, see Development and Design principles.