docling-project / docling-project/docling.rs
input: long-tail legacy formats — umbrella (WordPerfect, MS Works, Lotus 1-2-3, Quattro Pro, HWP, AbiWord, dBase, DIF/SYLK, …)
- Dominant language
- Rust
- Stars
- 72
- Forks
- 17
- Avg merge
- 3h 44m
- Merged PRs (30d)
- 100
Description
Policy proposal: react to real user demand (👍 votes / comments naming a format), keep the native-parsing bar (no LibreOffice shell-out — that's upstream docling's approach, not ours).
| Status | Family | Extensions | Note |
|---|---|---|---|
| ✅ #358, ✅#359 | WordPerfect | `.wpd`, `.wp`, `.wp5`, `.wp6`, `.wpt` | native parser (5.x/6.x+): text, bold/italic/underline, tables; headers/footers/footnotes not extracted; WP 4.2 and Mac 3.x refused |
| ✅ #242 | MS Works spreadsheets v3 | `.wks` | Lotus-style record stream (BOF opcode 0xFF), content-sniffed against 1-2-3 `.wks` |
| ✅#360 | MS Works word processor | `.wps` | 2.x DOS raw stream, 3–4 raw stream, 4.5+ CFB (`CONTENTS`); LibreOffice ships 5 libwps fixtures |
| ⬜ | MS Works 6–9 spreadsheet | `.xlr` | CFB, BIFF-like `Workbook`; partially documented |
| ✅ #242 | Lotus 1-2-3 / Symphony | `.wk1`–`.wk4`, `.wks`, `.wrk`, `.123` | binary spreadsheets; calamine doesn't cover them |
| ✅#361 | Quattro Pro | `.wq1`/`.wq2`, `.wb1`–`.wb3`, `.qpw` | DOS `.wq1` probed in #242 and cut (LibreOffice reads labels at a different offset than the Lotus layout) |
| ⬜ | HWP (Hancom) | `.hwp` | big in Korea; CFB + documented-ish spec; the one entry here with a plausible audience — split out if requested |
| ✅ #278 | AbiWord | `.abw`/`.zabw`/`.awt` | XML (+gzip) — actually easy, just niche |
| ✅ #234 | dBase / interchange | `.dbf`, `.dif`, `.sylk`/`.slk` | table interchange relics |
| ⬜ | Misc DOS-era | `.prn`, `.602`, `.lwp`, `.mw`, `.mcw`, `.cwk`, `.pbd`, `.sgl`, `.cgm`, `.et`, `.eth` | no maintained parsers in any language |
Contributor guide
Research direction
This is an umbrella policy issue rather than a scoped code task; start by reviewing the unchecked format rows and the referenced format issues (#242, #358–#361, #278, #234). A contribution is only defined once a format is selected by user demand and its native parser scope and acceptance criteria are agreed, without LibreOffice shell-out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100