mrkeyoor.com_
Tue 01 Sept 17:40 UTC
AI Toolsevaluationupdated 24 Aug 2026

docling review

Docling turns PDFs, office files, images, audio, video, email, and other formats into structured Markdown, HTML, JSON, or its own document model. It handles the messy first step in search and AI systems: recovering text, tables, layout, reading order, and media while allowing local processing.

+254stars / 7d
Verdict

Docling is the first project we would trial when one local pipeline must understand many document types and preserve more than plain text. Its format range, document model, exports, integrations, service, and MCP route save substantial assembly work. The 6.5 GB install and 66 failed tests in our bare container rule out blind adoption: test your hardest files, install the required system libraries, and reject suspicious output before indexing it.

We ran it

Lab card: what happened when we ran doclingScreenshot of docling (docling-project.github.io/docling)
Install✓ · 122s179 packages · 6524 MB
Build✓ · 8s
Tests✗ · 503s1384 passed · 66 failed · 59 skipped of 1450 (pytest)
Known vulns0(pip-audit)
Repo1646 files~122,888 lines of source · 212.4 MB · 13 CI workflows · Dockerfile · tests dir

Answers from our run

Does docling build from source?

Dependencies installed in 122 seconds (179 packages), and the build succeeded in 8 seconds. We cloned commit e1cb2b2 into a clean Debian container with 3 CPUs and no project-specific setup.

Do docling's tests pass?

Not all of them: 1384 of 1450 passed and 66 failed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does docling have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use docling?

Legal or compliance workflows that assume successful conversion means exact output: current reports show invisible PDF text entering exports, line-wrapped command flags losing hyphens, and HTML tables disappearing.

What are the alternatives to docling?

Unstructured, Marker, MinerU. Docling is the first project we would trial when one local pipeline must understand many document types and preserve more than plain text.

Setup3/5Simple command, but a 6.5 GB install and native OCR dependencies
Docs5/5Detailed formats, engines, recipes, service, and MCP guidance
Community5/5Daily maintenance, current releases, and detailed issue reports
Maturity4/5Broad format support, with fidelity bugs that demand corpus tests

Discussed on

  1. hnDocling-serve: Running Docling as an API service3 points

Who it’s for

Teams building retrieval, search, extraction, or agent systems from mixed document collections.
Developers who need local or air-gapped conversion through Python and a command line.
Data engineers who want one document model across PDFs, office files, email, audio, video, and XML.
MCP users who want document conversion exposed to compatible agents locally or through Docling Serve.

Who it’s NOT for

Legal or compliance workflows that assume successful conversion means exact output: current reports show invisible PDF text entering exports, line-wrapped command flags losing hyphens, and HTML tables disappearing.
Tiny functions or containers with a strict disk budget: our default development install used 6,524 MB for 179 packages before any corpus or service data.
Operators expecting every OCR option to work in a bare Debian image: our test log repeatedly failed RapidOCR imports because libGL.so.1 was absent.
Teams buying automatic metadata or chemistry extraction today: the README lists metadata extraction and complex chemistry understanding under its Coming soon section, not current features.
Windows Docker users assuming an available NVIDIA GPU will be selected correctly: open issue #2528 documents a Docling Serve setup that remained on CPU despite visible CUDA providers.

Setup reality

Our Debian sandbox installed 179 packages in 122 seconds and used 6,524 MB. The build succeeded in 8 seconds. Tests failed after 503 seconds: pytest reported 1,384 passed, 66 failed, and 59 skipped. The log tail repeatedly showed RapidOCR imports missing libGL.so.1, plus a separate git merge-tree subprocess failure. pip-audit found no known vulnerabilities.

The default library needs no hosted account, and local conversion can keep files on your machine. Extra pipelines add PyTorch variants, OCR engines, model downloads, Tesseract data paths, ASR, VLM, or CUDA-specific packages. Remote MCP conversion needs a Docling Serve URL and, when configured, an API key.

Python 3.10+ is required. CPU-only Linux users may need a separate PyTorch index, Intel Macs need pinned older PyTorch packages, and several OCR engines depend on system libraries. Serving adds request limits, model caching, storage policy, authentication, concurrency, and GPU selection work.

One document model for many awkward formats

Docling addresses the failure-prone part of document AI: turning files into usable structure. A PDF may contain text in the wrong reading order, tables drawn from positioned lines, scanned pages, formulas, charts, and images. Office files, email, audio, video, and XML bring different problems. Docling converts them into a shared DoclingDocument, then exports Markdown, HTML, WebVTT, DocTags, DocLang, or lossless JSON.

The shared model is the reason to choose it over a folder of format-specific parsers. Downstream code can iterate through headings, tables, pictures, and other items without inventing a schema for each source. Inputs cover PDF, DOCX, PPTX, XLSX, HTML, EPUB, images, audio, video, email, LaTeX, plain text, OpenDocument files, XBRL, patents, and scientific-publishing XML.

Local execution is useful for sensitive documents that should not reach a hosted parser. The code uses the MIT license, though the README warns that individual models retain their own licenses. Integrations connect the output to LangChain, LlamaIndex, CrewAI, and Haystack, while a separate MCP server makes conversion available to compatible agents.

What happened when we ran it

We cloned commit e1cb2b2 into an unprivileged Python 3.12 Debian container with 3 CPUs and 8 GB of RAM. Installation succeeded in 122 seconds, bringing in 179 packages and consuming 6,524 MB. The build completed in 8 seconds. A Python dependency audit reported no known vulnerabilities.

The test command failed after 503 seconds. Pytest reported 1,384 passed, 66 failed, and 59 skipped. Many entries in the supplied log tail were RapidOCR tests that stopped on ImportError: libGL.so.1: cannot open shared object file. Another listed failure came from a git merge-tree subprocess. The log does not justify assigning every failure to one cause, so those are separate findings.

The checkout had 1,646 files, about 122,888 lines of source, and used 212.4 MB. The lab found 13 CI workflow files, a Dockerfile, and a tests directory. Passing more than a thousand tests shows substantial exercised code, while 66 failures mean the bare Debian environment was not green. The missing graphics library is also a concrete warning for OCR containers.

The easy command hides a heavy stack

The quick start is genuinely short: use Python 3.10 or newer, install docling, and run one CLI command against a local file or URL. Python code is similarly direct. Construct a DocumentConverter, convert a source, and export the document. The supported platforms include macOS, Linux, and Windows on x86_64 and Arm.

Disk and system requirements grow quickly. Our install reached 6.5 GB before processing a real corpus. Docling's models depend on PyTorch, and the installation guide offers a separate CPU-only index for Linux. Intel Macs need a compatible PyTorch release and Python 3.12 or older. Optional extras cover speech recognition, visual models, HTML rendering, EasyOCR, RapidOCR, Tesseract bindings, and a narrowly supported NVIDIA OCR setup.

OCR is especially platform-sensitive. Tesseract needs system packages and a correctly terminated TESSDATA_PREFIX. Nemotron OCR currently requires Linux x86_64, Python 3.12, and CUDA 13.x. Our RapidOCR failures show that Python resolution alone does not guarantee a working runtime when a native graphics library is missing. Build the production image from the documented engine choice, then test that exact image.

Structure is valuable and fallible

Docling's PDF work covers layout, reading order, tables, code, formulas, image classification, OCR, and chart understanding. That can preserve far more meaning than basic text extraction. It also creates more ways for output to be subtly wrong. A pipeline can return Markdown without throwing an exception while still changing the information a reader sees.

Current reports make the risk concrete. Issue #4053 shows invisible PDF text reaching the assembled document and Markdown export, including tracking text from government bills. Issue #4043 describes a line-wrapped command flag losing its hyphen, which silently changes technical instructions. Issue #4049 reports tables inside arXiv LaTeXML HTML being absent from the resulting document. Each problem affects downstream search or retrieval without looking like a crash.

Build a corpus that reflects your real intake: rotated pages, scans, multiple columns, dense tables, unusual fonts, formulas, charts, and the languages you receive. Check reading order, table cells, headings, page references, and character accuracy. Keep the original file, conversion settings, Docling version, and page-level provenance. Lossless JSON is the safer canonical output when Markdown cannot represent all structure.

MCP and serving change the operating model

The MCP server can run conversion locally through uvx, or delegate to Docling Serve using a service URL and optional API key. That is convenient when several agents need the same document capability. It also creates a network service handling potentially sensitive uploads, large model state, and expensive jobs. Authentication, request size, retention, concurrency, timeouts, and logs become part of the design.

GPU availability does not remove configuration risk. Open issue #2528 describes a Windows Docker setup where Docling Serve saw CUDA providers yet kept work on the CPU. Treat accelerator selection as something to verify with your chosen engine and image rather than infer from nvidia-smi. Air-gapped deployments must also prefetch every model and dependency they intend to use.

Health and the buying decision

The repository was pushed on August 24, 2026, and issues and pull requests were updated the same day. Release v2.121.0 arrived on August 20 with Pages support, PDF rotation fixes, OCR input improvements, and service-version negotiation. GitHub showed 992 open issues and pull requests combined. The queue is large, but release and issue activity are current.

Docling deserves the first evaluation when format breadth, local processing, and structured output matter. It is less attractive for tiny deployments or workflows that can use a simple text extractor. Pin the version, choose only the OCR and model extras you need, add missing system libraries, and compare output against a representative gold set. The product is powerful; trust comes from your validation layer.

Alternatives

ProjectWhat it isPick it when
UnstructuredA document ingestion toolkit with partitioning, cleaning, chunking, and connector-oriented workflows.pick this instead when ingestion pipelines and connector coverage matter more than Docling's unified layout-aware document model.
MarkerA focused converter for turning PDFs and other documents into Markdown, JSON, chunks, or HTML.pick this instead when PDF conversion is the main job and a narrower tool performs better on your evaluation set.
MinerU gh↗A document extraction project aimed at complex PDFs and machine-readable output.pick this instead when academic or technical PDFs dominate and its structure wins on your own corpus.

What people are saying

  1. [github-trending] docling-project/docling

Sources

  1. Docling repository and README
  2. Docling installation guide
  3. Docling MCP guide
  4. Docling v2.121.0 release
  5. Invisible PDF text export issue
  6. Line-wrapped command hyphen issue
  7. Missing LaTeXML HTML tables issue
  8. Docling Serve GPU selection issue

More ai tools reviews

claudian · SkillSpector · robin · mjlab · MoGe · awesome-design-md · the whole board →