OpenOOXML
The open-source project building native OOXML engines in Rust — DOCX, XLSX & PPTX, compiled to WebAssembly for the web.
01 Project
A project, not a product
OpenOOXML develops the engines that make Office documents first-class citizens of the web: parsing, layout, editing, and rendering for the OOXML formats, written in Rust and developed in the open under Apache 2.0.
The engines run wherever Rust or WebAssembly runs — browsers, servers, and embedded inside agent pipelines. Products built on top, like BetterOffice, package them as ready-to-use editors and SDKs.
- Rust, end to endEvery engine is written in Rust. No JS reimplementation, no headless office suite behind an API.
- WASM on the webThe same engines compile to WebAssembly and run in the browser at near-native speed.
- Real-time collaborationMultiplayer editing is built into the core — concurrent edits merge natively.
- Native OOXML editingDocuments are edited in their own format. No lossy conversion on open, none on save.
- Agent-readyEngines run headless and embed directly inside agent pipelines — parse, edit, and render without a display server.
- Apache 2.0Permissive license, developed in the open. Independent of any office suite codebase.
02 Architecture
One foundation, three formats
The formats share more than they differ, so the code does too. Packaging, graphics, typesetting and collaboration live in shared Rust crates; DOCX, XLSX and PPTX are format engines on top. Everything lives in one repository: openooxml/betteroffice.
- opcOpen Packaging Conventions — the parts, relationships and zip container every OOXML file sits on.
- drawingmlShapes, images, charts and effects. DrawingML is shared by all three formats, so the engine is too.
- layoutText shaping, line breaking and pagination — one typesetting core for documents, cells and slides.
- syncFormat-agnostic real-time collaboration. Concurrent edits merge in the core, not in a bolt-on layer.
All three formats are published on npm, crates.io and PyPI. See the package guide for each runtime and release notes for shipped changes.
03 Migration
An open-source alternative to eigenpal
eigenpal was a popular DOCX editor, deprecated when its maintainers moved to a commercial product. OpenOOXML maintains BetterOffice, an independent Apache 2.0 implementation with a framework-free DOCX core and a React editor.
Install the React editor, then use the migration guide to update your imports and integrate the current API:
npm install @betteroffice/docx-react @betteroffice/docx react react-dom