BetterOffice is an open-source office suite providing Rust-native OOXML engines for DOCX, XLSX, and PPTX, with WebAssembly browser support and React components.

Stars

34

7-day growth

No data

Forks

0

Open issues

0

License

Apache-2.0

Last updated

2026-07-28

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It combines Rust performance and safety with CRDT-based collaboration and agent editing, offering typed APIs across Rust crates, WebAssembly, and pre-built React editors.

Who it is for

  • Rust developers needing programmatic document handling
  • Web developers building custom document editors
  • Teams requiring collaborative document editing
  • Organizations seeking open-source OOXML processing

Use cases

  • Embedding a spreadsheet or document editor in a React app
  • Server-side document generation and conversion
  • Real-time collaborative editing of DOCX/XLSX/PPTX files
  • Custom headless document processing pipelines

Strengths

  • Native Rust performance and memory safety
  • Cross-platform deployment via WebAssembly and headless APIs
  • Typed, format-specific APIs for DOCX, XLSX, and PPTX
  • Drop-in React components for quick integration

Considerations

  • Project is relatively new and may lack mature feature completeness
  • Limited documentation outside basic setup and packages
  • Requires Rust or JavaScript/TypeScript knowledge for advanced customization

README quick start

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.

Packages

packagewhat it does
betteroffice-docxtyped Rust API for opening, editing, laying out, and saving DOCX documents
@betteroffice/docxframework-free .docx editor core — parsing, CRDT editing, and page layout in Rust through WebAssembly
@betteroffice/docx-reactdrop-in React .docx editor
betteroffice-xlsxtyped Rust API for opening, editing, calculating, rendering, and saving XLSX workbooks
@betteroffice/xlsxframework-free spreadsheet core powered by the Rust engine through WebAssembly
@betteroffice/xlsx-reactdrop-in React spreadsheet editor
betteroffice-pptxtyped Rust API for opening, editing, rendering, and saving PPTX presentations
@betteroffice/pptxframework-free .pptx editor core — slide model, masters, and rendering in Rust through WebAssembly
@betteroffice/pptx-reactdrop-in React .pptx editor

Structure

  • crates/ — the Rust engines
  • packages/ — the TypeScript editor packages
  • apps/webbetteroffice.dev (Next.js on Cloudflare Workers)
  • apps/docs — documentation

Development

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 engines

Contributing

Contributions are welcome. We ask for a one-time signature of the Contributor License Agreement on your first pull request (corporate version).

License

Apache-2.0 — third-party attribution in THIRD-PARTY-NOTICES.md.

Description

Native OOXML engines in Rust - DOCX, XLSX & PPTX editing, rendering and real-time collaboration, compiled to WASM for the web.

Related repositories

Similar projects matched by category, topics, and programming language.

l0ng-ai
Featured
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

Developer ToolsCLI & Terminal
359
steelbrain
Featured
steelbrain GitHub avatar

reims-vgpu

reims-vgpu is an experimental virtual GPU for macOS guests that uses QEMU to decode the guest's GPU command stream and execute it through Metal or Vulkan, leveraging the built-in AppleParavirtGPU driver without requiring custom kexts.

Desktop Apps
143
m-novotny
Featured
m-novotny GitHub avatar

memguard-rs

A Rust library that provides secure memory handling primitives including zeroization on drop, memory locking, constant-time comparison, and compile-time guarded regions, with zero dependencies and no_std support.

Embedded & IoTSecurity
131