docling vs unstructured
Document parsing and structuring tools compared
docling and unstructured are Python projects that turn varied document formats into structured content for downstream workflows such as search and LLM applications. docling emphasizes rich document analysis and multiple export formats, while unstructured centers on partitioning files into structured elements with automatic type detection.

docling: Convert Documents into Structured Content
Docling parses documents such as PDFs, Word files, spreadsheets, and images into structured content for applications and generative AI workflows. It offers local processing, a Python library, and a command-line interface.

unstructured: Turn Documents Into Structured Data
Unstructured is a Python library for parsing and preprocessing documents into structured elements for downstream applications, including LLM workflows. It supports many file types, with format-specific dependencies for some inputs.
| docling | unstructured | |
|---|---|---|
| Language | Python | HTML |
| License | MIT | Apache-2.0 |
| Stars | 68.7k | 15.5k |
| Forks | 5k | 1.4k |
| Last analyzed | Oct 12, 2026 | Oct 3, 2026 |
Key differences
- docling analyzes PDF layout, reading order, tables, code, formulas, and images; unstructured routes detected file types to corresponding parsers and provides format-specific partitioning.
- docling exports to formats including Markdown, HTML, WebVTT, and lossless JSON; unstructured describes structured elements for downstream processing.
- docling supports local and air-gapped execution, along with a CLI, Python API, API-server, and MCP options; unstructured offers local tooling and Docker images, with some format support requiring extra dependencies.
- docling is MIT licensed; unstructured is Apache-2.0 licensed.
- docling lists Python as its language; unstructured lists HTML.
Choose docling if you…
- need PDF layout, reading-order, and table analysis alongside other document parsing.
- want exports such as Markdown, HTML, WebVTT, or lossless JSON.
- need local or air-gapped processing, or integrations with LangChain, LlamaIndex, Haystack, or Crew AI.
Choose unstructured if you…
- want automatic file-type detection and parser selection through `partition`.
- need a library for partitioning diverse inputs such as documents, images, and emails into structured elements.
- prefer installing optional dependencies for selected document types and using local tooling or Docker images.
Compare the numbers side by side, or add more projects
This comparison is generated with AI from the OSRepos analyses of both projects. Always check each project's repository and documentation before choosing.