docling-project

docling: Parse Documents for AI Workflows

Docling converts documents from formats such as PDF, Office files, images, and audio into structured representations and exports. It suits developers building document-processing and generative AI pipelines that need format coverage, OCR, or local execution.

Stars
68.3k
Forks
5k
Stars, last 10 days
+525

Our take

Health score

81/100

How it is scored
Activity
89
Community
92
Issues
83
Pull requests
61

+525 stars in the last 10 days

  • Releases more often than 93% of the projects we track
  • Merges more pull requests than 88% of the projects we track
  • More contributors than 77% of the projects we track

Overview

Docling is a Python library and command-line tool for converting varied documents into structured content that applications can process. It addresses the gap between files designed for people and the organized text, tables, and layout information needed by search, analytics, and generative AI workflows.

It is a fit for teams that need one conversion interface across many formats, with options for advanced PDF parsing and local processing. Its unified document representation and exports can connect document ingestion to downstream AI frameworks and tools.

Key Features

  • Parse documents including PDFs, DOCX, PPTX, XLSX, HTML, images, audio, video, email, and EPUB.
  • Extract PDF structure such as layout, reading order, tables, code, and formulas.
  • Apply OCR to scanned PDFs and images.
  • Represent parsed content in a unified DoclingDocument format.
  • Export to Markdown, HTML, WebVTT, DocTags, DocLang, and lossless JSON.
  • Run locally, including in sensitive-data or air-gapped environments.
  • Integrate with frameworks including LangChain, LlamaIndex, CrewAI, and Haystack.
  • Use a CLI, Python API, MCP server, or API server.

Use Cases

  • AI application developers can prepare PDFs and office documents for retrieval-augmented generation or other document-grounded workflows.
  • Data and operations teams can extract tables and structured content from reports and spreadsheets for further processing.
  • Organizations handling sensitive documents can run conversion locally rather than relying on a hosted processing service.
  • Developers building ingestion pipelines can normalize mixed file collections into Markdown or structured JSON.

Getting Started

Install with pip:

pip install docling

For usage examples and setup details, see the README and documentation.

Alternatives

  • marker: Marker focuses on converting PDFs and documents into Markdown, JSON, HTML, or chunks, while Docling also supports broader format coverage and audio.
  • unstructured: Unstructured parses documents into elements for downstream workflows, with format-specific dependencies, rather than Docling's unified structured representation and exports.
  • pdf-craft: PDF Craft specializes in OCR-based conversion of scanned material to Markdown or EPUB, while Docling handles a wider range of document formats and workflows.
  • xberg: Xberg offers a Rust-based extraction engine with CLI, API, and MCP interfaces, while Docling is a Python document-processing toolkit.
ProjectLanguageLicenseStarsStatus
doclingPythonMIT68.3kNot checked yet
markerPythonApache-2.040.2kActive
unstructuredHTMLApache-2.015.5kActive
pdf-craftPythonMIT6.3kActive
xbergRustMIT9.4kActive

Considerations

  • Python 3.10 or higher is required; Python 3.9 support was dropped in version 2.70.0.
  • Parsing behavior and available capabilities vary by input format and pipeline. Some workflows use OCR or visual language models.
  • The code is MIT-licensed, but individual models may have separate licenses. Check the original model package terms when using them.
  • The repository reports 995 open issues, so review current issue discussions if a particular format or workflow is important to your deployment.

Found this useful?

Share it with someone who would like docling.

Comparisons