Streaming document conversion for sovereign collaboration.
Documents, as they flow. DocSpec converts between document formats as a stream of typed events — one event at a time, in constant memory, never buffering the whole document. Built in Rust, from the same discipline end to end.
Funded by NLnet through the NGI0 Commons Fund, and the Netherlands' Ministry of the Interior and Kingdom Relations.
Used by DINUM — La Suite Numérique.
Any reader feeds any writer; the event stream is the only contract between them.
- Reads DOCX, HTML, Markdown
- Writes HTML, Markdown, BlockNote JSON, oxa.dev JSON, Pandoc native
- HTTP API — a streaming conversion server, available now:
docspec http, or theghcr.io/docspec/apiimage - Constant memory — documents stream through event by event, whatever their size
Planned: ODT, PDF, Typst, EPUB, and Tiptap.
DocSpec powers document import for La Suite Docs, part of the Franco-German-Dutch sovereign collaboration stack under DC-EDIC.
- docspec/docspec — the Rust workspace: libraries, the CLI, and the HTTP server
This work grew out of the mentoring and support of @virgile-dev.