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, …)

Open
#216 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.