Flow
Lossless round-trip plus the line-breaking and pagination pipeline — what the private preview runs on.
● Private preview — one core · two targets
Three planes, one file: the bytes you trust, the layout we prove, the page you get. Scroll to collapse the stack — losslessness is the distance between them being zero.
三層紙、一個檔案:你信任的位元組、我們證明的版面、你看到的頁面。 向下捲動把紙堆壓平——無損,就是三者之間的距離為零。
無損不是承諾,而是結構:引擎未觸碰的每一個位元組,都會在寫回時原樣出現。
The browser tab and the desktop share one layout core — same advances, same breaks, same display list.
¶ every break proven, never guessed
Everything you see is a rendering target: display lists out, pixels in.
Three stages, one Rust core, compiled twice. Nothing is approximated twice — so browser and desktop cannot disagree.
OPC is unzipped entry by entry. Every part — even ones Quire has never seen — is claimed, content-addressed, held for write-back. Unknown is not the same as absent.
Shaped advances against real fonts; breaks chosen jointly per paragraph to minimise total badness. UAX#14 decides legality — KP decides what is right.
Paragraph caches reflow only the dirty interval; breaks settle in background passes. p95 incremental reflow under 8 ms. Output: a display list both renderers draw from.
The line-break theatre — scroll to set the type
The same justification model the engine uses, live in your browser. 拉動滑桿,版面即時重排。
Lossless round-trip plus the line-breaking and pagination pipeline — what the private preview runs on.
Sibling format crate on the same OPC/lossless core: workbook model, formula engine, sheet render list.
Slide and shape model reusing the layout and shaping crates; its own presentation render list.
Shared: OPC container, OOXML part machinery, lossless discipline. Not shared: the layout model — each format typesets the way its format says it should.
Untouched ZIP entries are copied byte-for-byte on write-back; roundtrip --check plus a 400-file corpus gate it on every commit across two OSes.
The engine compiles to native and wasm32-unknown-unknown. The browser shell is a thin platform adapter, not a second implementation.
Format crates never import shells; shells enter through one engine API. A CI script enforces the boundary instead of a code review convention.
Shaped advances against real font metrics, Knuth-Plass optimal breaks, incremental pagination with p95 reflow under 8 ms.
The engine is in private preview while the foundations — XLSX groundwork and the collaborative layer — hold. When the site opens, this section becomes a one-field waitlist; until then, write to [email protected] if you want early access to the playground build.