Rust-native OOXML engines with collaboration and agent editing at the core.
WebAssembly for browsers. Headless APIs for servers. Native Rust where you need it.
| package | registry | what it does |
|---|---|---|
betteroffice-docx |
crates.io | typed Rust API for opening, editing, laying out, and saving DOCX documents |
@betteroffice/docx |
npm | framework-free .docx editor core — parsing, CRDT editing, and page layout in Rust through WebAssembly |
@betteroffice/docx-react |
npm | drop-in React .docx editor |
betteroffice-docx |
PyPI | Python API for reading, editing, laying out, and rasterizing DOCX documents |
| package | registry | what it does |
|---|---|---|
betteroffice-xlsx |
crates.io | typed Rust API for opening, editing, calculating, rendering, and saving XLSX workbooks |
@betteroffice/xlsx |
npm | framework-free spreadsheet core powered by the Rust engine through WebAssembly |
@betteroffice/xlsx-react |
npm | drop-in React spreadsheet editor |
betteroffice-xlsx |
PyPI | Python API for opening, recalculating, styling, rendering, and saving XLSX workbooks |
| package | registry | what it does |
|---|---|---|
betteroffice-pptx |
crates.io | typed Rust API for opening, editing, rendering, and saving PPTX presentations |
@betteroffice/pptx |
npm | framework-free .pptx editor core — slide model, masters, and rendering in Rust through WebAssembly |
@betteroffice/pptx-react |
npm | drop-in React .pptx editor |
betteroffice-pptx |
PyPI | Python API for reading, editing, saving, and laying out PPTX presentations |
What to install for which language, with a first example each: npm, crates.io, PyPI.
crates/— the Rust enginespackages/— the TypeScript editor packagesbindings/— the Python bindingsapps/web— betteroffice.dev (Next.js on Cloudflare Workers)apps/docs— documentation
bun install
bun run build:xlsx-wasm # compile the ignored spreadsheet wasm asset
bun run build:docx-wasm # compile the ignored document wasm assets
bun run dev # web app
bun run rust:check # fmt + clippy + tests for the enginesUse the Office visual quality harness to export Word, PowerPoint, and Excel references, compare local renders, or refresh the fidelity scores with the manual action.
Generated by the Visual fidelity action.
| Format | Latest published version | SSIM | Latest commit | SSIM | Samples (published / commit) |
|---|---|---|---|---|---|
| DOCX | 0.1.0 | 0.9288 | 3d518130 | 0.9291 | 49 / 49 |
| PPTX | 0.0.4 | 0.9326 | 3d518130 | 0.9322 | 1 / 1 |
| XLSX | 0.1.0 | 0.7052 | 3d518130 | 0.9292 | 1 / 1 |
SSIM is the mean page-penalized grayscale score at 150 DPI, without resampling or alignment correction. DOCX uses recorded page bounds with at most a one-pixel edge adjustment. Missing or extra pages are penalized. All formats use pinned CDN fonts. XLSX uses recorded print ranges and scale; its score measures range rendering, not automatic print pagination. Scores cover the selected corpus samples.
Contributions are welcome. We ask for a one-time signature of the Contributor License Agreement on your first pull request (corporate version).
Apache-2.0 — third-party attribution in THIRD-PARTY-NOTICES.md.