Rust · WebAssembly · Canvas 2D

High-fidelity Office documents,
rendered in the browser.

@silurus/ooxml parses .docx, .xlsx and .pptx with a Rust/WASM engine and paints them to a Canvas — no server, no native apps, no iframe. Faithful rendering of a wide range of real-world documents, right in the browser.

@silurus/ooxml
🦀

Rust-grade parsing

Each format's parser is written in Rust and compiled to WebAssembly — fast, memory-safe, and faithful to ECMA-376 / ISO-29500.

🎨

Canvas, not the DOM

Rendered with the Canvas 2D API on the main thread, sharing the document's font set — so text metrics, wrapping, and page breaks match the original document.

📐

Spec-faithful, not guessed

docGrid snapping, line-spacing rules, theme colour modifiers, chart axis styling — implemented from the spec, never from per-sample heuristics.

🧩

Headless or batteries-included

Use the built-in viewers, or drive the headless engine into your own scroll views, thumbnail grids, and master–detail panes.

Live in this page

Not a screenshot — the real renderer.

Each tab below is the actual library running a real document in your browser right now — Rust/WASM parse, Canvas paint. Switch formats, step through pages, scroll the sheet.

sample-1.docx live · WASM

Go deeper — live demos and the code behind them, per format: DOCX · XLSX · PPTX

What it renders

Deep format coverage.

A curated slice of what each format supports. The full, exhaustive matrix lives in the README. Coverage is broad and growing; very complex or unusual documents may still differ from Office in places.

DOCX
  • Headers / footers, section breaks
  • Tables — borders, fills, merges
  • Images & SVG, inline & anchored with text wrap
  • Ruby / furigana, sub/superscript
  • Line grid (docGrid), spacing rules
  • Lists, paragraph & table styles
  • Math equations (OMML, STIX Two Math)
  • Track changes, footnote markers
  • Vertical writing (縦書き), embedded charts
  • Text selection, find, clickable hyperlinks
  • Continuous scroll viewer (virtualized, zoom)
DOCX demos & code →
XLSX
  • Multiple sheets, tab colours
  • Formulas (cached), dates, number formats
  • Charts — bar, line, area, pie, doughnut, radar, scatter
  • Sparklines, conditional formatting
  • Merged cells, frozen panes, kinsoku cell wrap
  • Outline grouping, furigana, cell comments
  • Selection, TSV copy, find, hyperlinks, drag-resize
  • Zoom (slider / pinch / fit), view-only
  • Images & SVG, drawing shapes, slicers
  • Math equations (OMML, STIX Two Math)
XLSX demos & code →
PPTX
  • Layout / master inheritance
  • Backgrounds — solid, gradient, image
  • Preset & custom geometry shapes
  • Shape & picture effects — shadows, glow, reflection
  • 3D scene camera, bevel & extrusion shading (sp3d)
  • Charts — combo, chartEx, stock, data labels
  • WordArt text warps, math equations (OMML)
  • SmartArt text, grouped transforms
  • SVG images, gradient / image fills, theme colours
  • Text selection, find, clickable hyperlinks
  • Continuous scroll viewer (virtualized, zoom)
PPTX demos & code →