PROFILE ALL WORKS CONTACT
← BACK TO ALL WORKS
Open Source

Quire Office Engine

基於 Rust 的高效無損 Office 文件引擎。保證在儲存時未修改部分 100% 位元級完全一致 (byte-identical round-trip),支援 SVG 排版渲染與 WebAssembly 瀏覽器運行。

2026.10.20 // 核心開發

專案資訊

角色: 核心開發
時間: 2026.1
類型: Open Source

技術棧

Rust WebAssembly OOXML DOCX Document Engine SVG Open Source

Quire — Lossless Office Document Engine in Rust

License: Apache-2.0 Rust WebAssembly


專案簡介

Quire 是一個使用 Rust 編寫的高效 Office 文件核心引擎,專注於 Office 檔案(以 DOCX 為核心,逐步擴展至 XLSX、PPTX)的無損開啟、排版渲染、SVG 顯示列表輸出與位元級完美儲存(Lossless Round-Trip)。

傳統開源文件函式庫通常將文件解析進自己的資料物件模型中,並在儲存時從零重新序列化輸出,這往往導致未建模的自訂 XML、數位簽章、特殊格式標籤在儲存過程中被無聲丟失。

Quire 透過自研的無損 ZIP 容器層與結構保留機制保證:儲存時僅重寫明確被修改的部分;其他未更動或引擎未識別的段落,皆以 100% 位元級完全一致 (Byte-for-Byte Identical) 的方式封存。在包含 400 份真實世界文件的測試集上,達成 399/399 份文件零位元變動的嚴苛測試門檻。


核心特性

  • 🛡️ 位元級無損往返 (Byte-Identical Round-Trip):
    • 保留原始壓縮流、ZIP64 結構、Extra Fields、註解與檔案排序,絕不遺漏任何自訂 XML 或未知欄位。
  • 📐 精確且一致的排版系統 (Deterministic Layout):
    • 實作 Knuth-Plass 斷行演算法(結合 Unicode UAX#14 與真實字型度量規格)。
    • 支援增量分頁 (Incremental Pagination, 500 頁長篇文件 p95 延遲低於 8ms)。
    • 完整支援多欄排版 (w:cols)、跨頁重複表頭表格、修訂標記 (w:ins/w:del)、浮動圖片與雙色調陰影。
  • 🌐 純前端 WebAssembly 原生支援:
    • 核心層完全相容 wasm32-unknown-unknown。
    • 可在瀏覽器端完全離線運行(例如 quireoffice.dev/playground),檔案無需上傳伺服器即可完成解壓、解析、排版與繪製。
  • 🔒 零信任安全設計 (Hostile-by-Default):
    • 嚴格防範 Zip Bomb(解壓前設有單檔與全包容量門檻)、全包 CRC-32 驗證、32-bit WASM 像素預算防溢出檢查,並設有損毀封包模糊測試門禁。

專案藝廊