← Any document β†’ text: all libraries Β· Reader board

Docling vs Unstructured: which one reads more real-world documents?

Docling 2.148.0 and Unstructured 0.27.36 on the same 477 odd real-world files from Apache Tika test documents (bug reports, fuzzers, broken exporters). Measured, not opinion; re-tested by itself on every new PyPI release. Updated 06 November 2026.

More files readUnstructured370 vs 266
Faster on this setUnstructured507.4 s vs 580.7 s total (about as fast)
Both read246only Docling: 20 Β· only Unstructured: 124

Unstructured got text from more files: 370 vs 266 of 477. Docling broke (error, hang or crash) on 9 files that Unstructured read; Unstructured broke on 3 files that Docling read.

LibraryText fromπŸ”΄ Fails where
the other reads
🟑 Empty where
the other reads
⏱ Hangs or
crashes
Format not
supported
Median
ms/file
Total
seconds
Docling 2.148.02669111507580.7
Unstructured 0.27.3637031101130507.4

By file type: files read with text

TypeDoclingUnstructured
.docx 71 files59/71 6 empty 6 failed57/71 10 empty 3 failed 1 not supported
.pdf 71 files52/71 14 empty 5 failed50/71 16 empty 5 failed
.doc 49 filesnot supported37/49 9 empty 1 failed 2 not supported
.rtf 44 filesnot supported40/44 2 empty 2 failed
.html 38 files36/38 2 empty34/38 2 empty 2 failed
.xlsx 35 files20/35 8 empty 7 failed21/35 10 empty 4 failed
.txt 30 files28/30 2 failed30/30
.xls 30 filesnot supported18/30 7 empty 5 failed
.pptx 29 files23/29 5 empty 1 failed21/29 7 empty 1 failed
.ppt 22 filesnot supported16/22 4 empty 2 failed
.odt 17 files15/17 2 failed15/17 1 empty 1 failed
.msg 14 files13/14 1 failed14/14
.eml 9 files9/99/9
.odp 4 files2/4 2 emptynot supported
.ods 4 files4/4not supported
.csv 3 files3/33/3
.epub 3 filesnot supported3/3
.json 2 filesnot supported0/2 2 failed
.md 2 files2/22/2

Files only Docling reads (20)

tika-encoding-detector-icu4j/test_ignore_IBM420.htmlUnstructured: UnprocessableEntityError: Unable to determine file encoding. Specify the source encoding with encoding=, or check whether the file is a supported text document.
tika-parser-microsoft-module/testPPT_EmbeddedPDF.pptxUnstructured: no text
tika-parser-microsoft-module/testPPT_charts.pptxUnstructured: no text
tika-parser-microsoft-module/testPPT_embeddedMP3.pptxUnstructured: no text
tika-parser-microsoft-module/testWORD_charts.docxUnstructured: no text
tika-parser-microsoft-module/testWPSAttachment.docxUnstructured: no text
tika-parser-miscoffice-module/testFooter.odsUnstructured: format not supported
tika-parser-miscoffice-module/testODP_NPE.odpUnstructured: format not supported
tika-parser-miscoffice-module/testODSMacro.odsUnstructured: format not supported
tika-parser-miscoffice-module/testODTEmbeddedImageLink.odtUnstructured: no text
tika-parser-miscoffice-module/versions/LibreOfficeCalc_ods_1.3.odsUnstructured: format not supported
tika-parser-miscoffice-module/versions/LibreOfficeImpress_odp_1.3.odpUnstructured: format not supported
tika-parser-pdf-module/testPDFFileEmbInAnnotation_noContents.pdfUnstructured: PDFPageCountError: Unable to get page count. Syntax Error: Couldn't find trailer dictionary Syntax Error: Couldn't find trailer dictionary Syntax Error: Couldn'
tika-parser-pdf-module/testPopupAnnotation.pdfUnstructured: no text
tika-parser-text-module/test_ignore_IBM420.htmlUnstructured: UnprocessableEntityError: Unable to determine file encoding. Specify the source encoding with encoding=, or check whether the file is a supported text document.
tika-parsers-standard-integration-tests/test-columnar.odsUnstructured: format not supported
tika-server-standard/2exe.docxUnstructured: no text
tika-server-standard/2pic.docxUnstructured: no text
tika-server-standard/pic.xlsxUnstructured: no text
tika-server-standard/testColorRendering.pdfUnstructured: no text

Files only Unstructured reads (124)

tika-parser-microsoft-module/casing/simple_normal_case.docDocling: format not supported
tika-parser-microsoft-module/jxl.xlsDocling: format not supported
tika-parser-microsoft-module/test-columnar.xlsDocling: format not supported
tika-parser-microsoft-module/test.docDocling: format not supported
tika-parser-microsoft-module/testComment.docDocling: format not supported
tika-parser-microsoft-module/testComment.pptDocling: format not supported
tika-parser-microsoft-module/testComment.rtfDocling: format not supported
tika-parser-microsoft-module/testComment.xlsDocling: format not supported
tika-parser-microsoft-module/testControlCharacters.docDocling: format not supported
tika-parser-microsoft-module/testDdeLink.xlsxDocling: ConversionError: Conversion failed for: testDdeLink.xlsx with status: failure. Errors: MsExcelDocumentBackend could not load document with hash 99e35606ced8985d
tika-parser-microsoft-module/testEXCEL-charts.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL-formats.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_1img.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_WORKBOOK_in_capitals.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_big_numbers.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_custom_props.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_dateFormats.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_embeded.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_extra_metadata.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_headers_footers.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_hyperlinks.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_labels-govdocs-515858.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_macro.xlsDocling: format not supported
tika-parser-microsoft-module/testEXCEL_phonetic.xlsDocling: format not supported
tika-parser-microsoft-module/testException1.docDocling: format not supported
tika-parser-microsoft-module/testException2.docDocling: format not supported
tika-parser-microsoft-module/testExternalRefs.docxDocling: RuntimeError: Pipeline SimplePipeline failed
tika-parser-microsoft-module/testFontAfterBufferedText.rtfDocling: format not supported
tika-parser-microsoft-module/testHoverAndVml.docxDocling: RuntimeError: Pipeline SimplePipeline failed
tika-parser-microsoft-module/testMSChart-govdocs-428996.pptDocling: format not supported
tika-parser-microsoft-module/testMSEquation-govdocs-863534.docDocling: format not supported
tika-parser-microsoft-module/testMSG_chinese.msgDocling: ConversionError: Conversion failed for: testMSG_chinese.msg with status: failure. Errors: Could not initialize email backend for file with hash b84c12748155dc57
tika-parser-microsoft-module/testPPT.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_2imgs.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_autodate.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_comment.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_custom_props.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_embedded2.pptDocling: format not supported
tika-parser-microsoft-module/testPPT_embeded.pptDocling: format not supported

…and 84 more: see each library's page.

Don't want to run it yourself? I also run PDF & Document to Markdown as a pay-per-use API on Apify (it uses pdfplumber and pypdfium2 for PDFs, markitdown for Office files). Disclosure: that tool is mine; the rankings above come only from the measurements.

What this does not tell you

This compares not breaking: whether each library gets any text out of each file. It does not rank text quality (reading order, tables, headings), and speed is one GitHub-hosted runner, default settings, no OCR switched on. If you need structure for RAG, also look at the output on your own files.

How this is measured