TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Apache-2.0 DOCX, XLSX and PPTX editors and viewers for React and plain JavaScript, by the OpenOOXML project. Native OOXML engines written in Rust, compiled to WebAssembly, with real-time collaboration
ProductivityRust · TypeScriptGitHub @openooxmlOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Native OOXML engines in Rust - DOCX, XLSX & PPTX editing, rendering and real-time collaboration, compiled to WASM for the web.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.
• Documents, spreadsheets, and slides. Open, edit, render, and save DOCX,
XLSX and PPTX files with high fidelity. Native OOXML editing preserves untouched
file parts losslessly when round-tripping.
• Agent editing with human review. Review attributed agent edits through
tracked changes, inline diffs, and before-and-after previews. Accept or
reject changes directly in the editor.Read the full README ↗Documents, spreadsheets, and slides. Open, edit, render, and save DOCX, XLSX and PPTX files with high fidelity. Native OOXML editing preserves untouched file parts losslessly when round-tripping.
Agent editing with human review. Review attributed agent edits through tracked changes, inline diffs, and before-and-after previews. Accept or reject DOCX proposals in the optional proposal sidebar.
Real-time collaboration. People and agents edit the same file together, with live cursors and selections. Concurrent changes merge automatically, and offline edits sync when peers reconnect.
Undo and redo. Navigate editing history and undo accepted agent proposals as a single step.
Embed or automate. Drop React editors into your app, build on the framework-free JavaScript cores, or use Rust and Python APIs for headless processing and agent workflows.
Open source and self-hostable. Apache-2.0 licensed, with control over your document storage, deployment, and collaboration infrastructure.
Try it out, or explore the docs for setup, APIs, and format support.
| Rust | Core | Core (native) | React | Python | |
|---|---|---|---|---|---|
| DOCX | betteroffice-docx | docx | docx-native | docx-react | betteroffice-docx |
| XLSX | betteroffice-xlsx | xlsx | xlsx-native, automatic native engine for xlsx | xlsx-react | betteroffice-xlsx |
| PPTX | betteroffice-pptx | pptx | pptx-native | pptx-react | betteroffice-pptx |
Rust: typed engine API. Core: @betteroffice/<format>, the framework-free core through WebAssembly, or native for XLSX when installed. Core (native): the same engine as prebuilt native bindings for Node.js, Bun and Deno on macOS, Linux and Windows. React: drop-in editor. Python: read, edit, render, save.
More packages:
@betteroffice/agents, the TypeScript SDK and betteroffice-mcp server.@betteroffice/fonts, @betteroffice/fonts-cjk.@betteroffice/docx-i18n, @betteroffice/xlsx-i18n, @betteroffice/pptx-i18n.What to install for which language, with a first example each: npm, crates.io, PyPI.
Upgrading from 0.4? See Migrating to 0.5.
Generated by the Benchmarks action; per-document results are on the benchmarks site.
Page agreement is reported separately from SSIM.
For how scores, timings and coverage are measured, see the benchmark methodology.
Model: gpt-6-luna, Harness: codex, three runs per task, on the v3 format eval suite: 96 basic and 33 complex editing tasks on pinned public real-world documents. A run passes only if the requested edit is correct, the rest of the file is untouched, and the input is unchanged.
Basic tier: 96 single edits, 32 per format.
| Generic file tools | BetterOffice MCP | |
|---|---|---|
| DOCX | 43/96 | 76/96 |
| XLSX | 49/96 | 94/96 |
| PPTX | 84/96 | 92/96 |
Basic: 262/288 for BetterOffice, 176/288 for generic file tools.
Complex tier: 33 multi-step tasks, 11 per format.
| Generic file tools | BetterOffice MCP | |
|---|---|---|
| DOCX | 2/33 | 19/33 |
| XLSX | 13/33 | 31/33 |
| PPTX | 21/33 | 31/33 |
Complex: 81/99 for BetterOffice, 36/99 for generic file tools.
Generic: shell and Python with python-docx, openpyxl and python-pptx, no network. BetterOffice: only the @betteroffice/agents MCP server.
Per-task results and methodology.
crates/: the Rust enginespackages/: the TypeScript editor packagesbindings/: the Python bindingse2e/: browser tests, corpus scenarios, and the shared test harnessapps/web: betteroffice.dev (Next.js on Cloudflare Workers)apps/demo: editor playgroundapps/docs: documentationbun install
bun run dev:demo # editor playground; builds the wasm bundles on first run
bun run dev # betteroffice.dev site (no wasm needed)
bun run dev:docs # documentation site
bun run rust:check # fmt + clippy + tests for the engines
Run bun run test:e2e:browser for headless browser tests of all three editors.
The E2E guide also covers pinned corpus scenarios,
cross-SDK checks, and operation profiles.
Use the Office visual quality harness to export Word, PowerPoint, and Excel references, compare local renders, or refresh the fidelity scores with the manual action.
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.