Renderingla

Features

Faber's design rests on three signal choices: type-first declarations, Latin behavioural vocabulary, and structural glyphs. These features compound — each one reinforces the others to produce source that is readable, checkable, and portable across execution lanes.

Reader locale

The compiler is the translator. Reader locale packs allow the same source to render in multiple natural languages without changing semantics. Read more →

Compilation lanes

Faber lowers through three intermediate representations (HIR, MIR, AIR) to multiple target backends including Rust runtime, WASM, TypeScript, Go, and GPU/WGSL. Read more →

Latin vocabulary and glyphs

Types come before names. Latin words carry behaviour. Structural glyphs carry value flow and type shape. The result reads like intent, not mechanism. Read more →

Commandments

Nine design laws govern every language decision, from keyword choice to error handling. These are the review criteria for new features. Read more →

Canonical vs sugar

Every sugar surface has a canonical expansion. The formatter can move between them. Sugar is convenience; canonical is the contract. Read more →

Capability calls and frames

The ad primitive provides capability-based dispatch. Frame types define the I/O boundary between Faber code and host providers. Read more →

Inline testing

Test suites live alongside source code using three keywords: probandum, proba, and adfirma. No separate test binary needed. Read more →