Our take
Newless than six months old and changing fast- Activity
- 53
- Community
- 14
- Issues
- 21
- Pull requests
- 82
- Merges more pull requests than 93% of the projects we track
- Fewer contributors than 82% of the projects we track
OpenDoc is an unusually broad document-editor and engine project, but its pre-release status and reliance on one main contributor make it a higher-adoption-risk choice today.
Good fit if
- You need a local-first browser editor or Rust engine and can work with a pre-release project.
- DOCX and ODT support, embeddability, or headless rendering are central to your use case.
- You can validate rendering and round-trip behavior against your own documents.
Look elsewhere if
- You require rendering identical to Word or mature, stable public SDKs and published crates.
- You need production-ready collaboration with relay TLS and authentication, or server-hosted version history.
- Your workflow depends on editing SmartArt, equations, or RTF, or on PDF features such as tags, links, bookmarks, or PDF/A.
All health signals
| Last commit | 2026-10-28 (today) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 0 |
| Contributors | 3 (top contributor: 98% of commits) |
| Issues closed, last 90 days | 0+ |
| Pull requests merged, last 90 days | 89 (typically merged in 0 days) |
| Project age | 3 months |
Checked on 2026-10-29 with the GitHub API.
Overview
OpenDoc is a local-first editor for Word documents, built on its own deterministic Rust engine. The same engine handles import, editing, layout, and rendering natively, headless, or in the browser through WebAssembly, so the web editor can open and save documents without a document server.
It is aimed at teams that want to embed or brand a document editor, or use a Rust document engine directly. The project emphasizes loss-aware DOCX handling and exports to PDF, HTML, and Markdown as well as DOCX and ODT. It is pre-release, and rendering is not yet identical to Word.
Key Features
- Opens and saves DOCX and ODT, opens RTF and plain text, and exports PDF, HTML, Markdown, and plain text.
- Uses a normalized document model and reports content an export cannot preserve; an unedited DOCX saves byte-for-byte.
- Provides a browser editor with editing, review, version history, comparison, print, and accessibility features.
- Offers an embeddable custom element, in-process API, and
postMessagebridge with host-controlled roles and capabilities. - Includes Rust crates for importing, editing, laying out, rendering, and exporting documents.
- Supports experimental real-time collaboration through an optional relay that forwards changes without holding documents.
- Applies explicit package limits when reading files and refuses macro-enabled DOCM files.
Use Cases
- Embed a local-first document editor in a product where users should open and edit files in the browser without uploading them to a document server.
- Build document workflows in Rust that need DOCX or ODT import, layout, rendering, or export.
- Preview or convert documents headlessly, for example to render pages or generate PDFs.
- Evaluate an open alternative to commercial document editors when pre-release status and imperfect Word rendering are acceptable.
What you need
Detected in the repository
- Rust 1.88.0 or newer (from Cargo.toml)
- A Compose file to run it with its related services
- Automated checks on GitHub Actions
License in plain words
Apache-2.0permissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the license, the NOTICE file and a note of your changes
- Share your changes: no
- Includes an explicit patent grant from the contributors:
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
The browser editor requires Rust and wasm-pack:
git clone https://github.com/CasualOffice/opendoc.git && cd opendoc
./webapp/build.sh
./webapp/serve.py
Then open http://localhost:8099/editor.html?demo=1. See the README for Docker, engine, and embedding instructions.
Alternatives
- univer: Univer is a TypeScript SDK for embedding document and other productivity experiences, while OpenDoc is a local-first Word editor with DOCX and ODT support.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| opendoc | Rust | Apache-2.0 | 34 | New |
| univer | TypeScript | Apache-2.0 | 22.6k | Active |
Considerations
- The project is new and changing quickly. It has recent development activity and merged pull requests, but no releases in the past year; the available contributor data is concentrated heavily in one person. No issues were closed in the measured recent period.
- The editor and engine are pre-release. The public SDK surfaces are not stable, and the internal crates are not published.
- The browser build requires Rust 1.88 or later and
wasm-pack; the README also documents a Docker Compose option. - Rendering fidelity is still improving. SmartArt is shown as a placeholder, some chart types are placeholders, and equations cannot be edited or inserted. RTF opens but cannot be saved.
- PDF export lacks tags, links, bookmarks, and PDF/A support. Collaboration is experimental, and browser version history is not stored on a server.
- The project is licensed under Apache-2.0. Review its license and bundled third-party asset notices when distributing it.
Found this useful?
Share it with someone who would like opendoc.