# OpenOOXML > Open-source project building native OOXML (Office document) engines in Rust: DOCX, XLSX & PPTX. The engines compile to WebAssembly for the web, include real-time collaboration and native OOXML editing (no lossy conversion), and run headless — including embedded inside agent pipelines. Apache 2.0 licensed. The product built on the engines is BetterOffice (betteroffice.dev), an independent open-source alternative to the deprecated eigenpal editor. All engine code lives in the github.com/openooxml/betteroffice repository. ## Architecture The formats share more than they differ, so the code does too. Shared Rust crates — opc (Open Packaging Conventions), drawingml (shapes, charts, graphics), layout (text shaping and pagination), sync (real-time collaboration) — with published DOCX, XLSX and PPTX engines on top. - [Repository (openooxml/betteroffice)](https://github.com/openooxml/betteroffice): engines, shared crates, and packages in one monorepo ## Packages DOCX, XLSX and PPTX are published on npm, crates.io and PyPI. Version numbers differ between formats and registries; use the registry links and release notes for current releases. For the React DOCX editor: `npm install @betteroffice/docx-react @betteroffice/docx react react-dom`. Import `DocxEditor` from `@betteroffice/docx-react` and its stylesheet from `@betteroffice/docx-react/styles.css`. - [@betteroffice/docx](https://www.npmjs.com/package/@betteroffice/docx): framework-free DOCX core - [@betteroffice/docx-react](https://www.npmjs.com/package/@betteroffice/docx-react): React DOCX editor and viewer - [@betteroffice/xlsx](https://www.npmjs.com/package/@betteroffice/xlsx): framework-free XLSX core - [@betteroffice/xlsx-react](https://www.npmjs.com/package/@betteroffice/xlsx-react): React spreadsheet editor and viewer - [@betteroffice/pptx](https://www.npmjs.com/package/@betteroffice/pptx): framework-free PPTX core - [@betteroffice/pptx-react](https://www.npmjs.com/package/@betteroffice/pptx-react): React slide editor and viewer - [Package guide](https://docs.betteroffice.dev/docs/packages): npm, Rust and Python packages, locale packages and fonts - [Release notes](https://github.com/openooxml/betteroffice/releases): shipped changes ## Migrating from eigenpal BetterOffice is an independent Apache 2.0 implementation started by a contributor to the original eigenpal editor. Use @betteroffice/docx for the framework-free core and @betteroffice/docx-react for the React editor. Update imports and integration code to BetterOffice's current API; npm aliases only rename dependencies and do not adapt exports, props or events. There is no published Vue adapter; Vue integrations can use the framework-free core with their own UI. - [Migration guide (eigenpal → OpenOOXML)](https://openooxml.org/eigenpal): published package mapping, React example and integration guides ## Guides and results - [JavaScript guide](https://docs.betteroffice.dev/docs/javascript): React editors, framework-free cores and locale strings - [Rust guide](https://docs.betteroffice.dev/docs/rust): native engine APIs - [Python guide](https://docs.betteroffice.dev/docs/python): Python packages and usage - [Visual fidelity results](https://github.com/openooxml/betteroffice#visual-fidelity): published packages and source builds compared with Microsoft Office on selected corpus files using SSIM; these are visual similarity scores, not timing benchmarks - [Comparison method](https://github.com/openooxml/betteroffice/tree/main/scripts/office-quality): corpus selection, reference rendering and measurement method ## Links - [Website](https://openooxml.org): OpenOOXML project home - [BetterOffice](https://betteroffice.dev): the product built on the engines — npm packages and hosted editors - [GitHub](https://github.com/openooxml/betteroffice): source code, issues, and roadmap - [npm organization](https://www.npmjs.com/org/betteroffice): all published packages - [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0): project license