mrkeyoor.com_
Fri 16 Oct 18:53 UTC
AI Toolsevaluationupdated 04 Oct 2026

docling review

Docling turns PDFs, Office files, images, audio, video, email, and several specialist formats into a common document structure. You can export that structure as Markdown, HTML, plain text, WebVTT, DocLang, DocTags, chunks, or lossless JSON for search and AI pipelines.

+298stars / 7d
Verdict

Our Docling run installed 182 packages and used 7,131 MB, then finished with 79 failed tests and 5 errors, so adopting it means owning a purpose-built runtime image. Use it when mixed formats, local processing, and recoverable document structure justify that weight. For plain PDF text or a small container, choose a narrower converter.

We ran it

Lab card: what happened when we ran doclingScreenshot of docling (docling-project.github.io/docling)
Install✓ · 71s182 packages · 7131 MB
Build✓ · 2s
Tests✗ · 608s2210 passed · 79 failed · 77 skipped · 5 errors of 2294 (pytest)
Known vulns0(pip-audit)
Repo1772 files~153,659 lines of source · 186.7 MB · 13 CI workflows · Dockerfile · tests dir

Answers from our run

Does docling build from source?

Dependencies installed in 71 seconds (182 packages), and the build succeeded in 2 seconds. We cloned commit 2d5c590 into a clean Debian container with 3 CPUs and no project-specific setup.

Do docling's tests pass?

Not all of them: 2210 of 2294 passed and 79 failed when we ran the project's own test command (pytest), with 5 collection errors. 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?

Small services that only need text from ordinary PDFs: our install occupied 7,131 MB, which is a high price for a narrow job.

What are the alternatives to docling?

MarkItDown, MinerU, Unstructured. Our Docling run installed 182 packages and used 7,131 MB, then finished with 79 failed tests and 5 errors, so adopting it means owning a purpose-built runtime image.

Setup2/57,131 MB installed and the fresh-container suite failed
Docs5/5Formats, extras, OCR engines, and platform limits are documented
Community5/568,341 stars, an October 3 push, and current releases
Maturity4/5Broad format support, but our complete test run was not green

Discussed on

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

Who it’s for

Teams feeding mixed business documents into search, retrieval, or extraction systems.
Developers who need tables, reading order, formulas, charts, and page structure rather than plain text alone.
Organizations that want document conversion to run locally, including air-gapped environments.
Agent builders who want the same parser through Python, a CLI, an API service, or MCP.

Who it’s NOT for

Small services that only need text from ordinary PDFs: our install occupied 7,131 MB, which is a high price for a narrow job.
Teams that require a green suite in a bare Debian image: our run ended with 79 failures and 5 collection or setup errors.
Workflows that need metadata or chemistry extraction today: the README places both under 'Coming soon,' not current features.
Organizations that need one license to cover every model choice: the code is MIT, but the README tells users to check each model's own license.
Operators who cannot add native packages for their chosen OCR route: the installation guide lists system dependencies for Tesseract, and our RapidOCR log could not find libGL.so.1.

Setup reality

Our sandbox installed commit 2d5c590 in 71 seconds, adding 182 packages and occupying 7,131 MB. The build passed in 2 seconds. Tests failed after 608 seconds: pytest reported 2,210 passed, 79 failed, 77 skipped, 1 xfailed, and 5 errors. Pip-audit found 0 known vulnerabilities.

The basic local CLI and Python route does not require an API credential. You do need to choose and cache the models your pipeline uses. Optional VLM, ASR, HTML rendering, and OCR paths bring separate extras, while remote models or Docling Serve add their own endpoint and access configuration.

Python 3.10 or newer is required. PyTorch distribution matters on CPU-only Linux and Intel Macs. Some formats need LibreOffice or ffmpeg, Tesseract needs native packages and TESSDATA_PREFIX, and Nemotron OCR is limited to Linux x86_64 with Python 3.12 and CUDA 13.x.

One document model spans PDFs, Office files, audio, and more

Docling accepts PDF, DOCX, XLSX, PPTX, HTML, email, images, audio, video, OpenDocument files, and specialist XML formats. It turns them into a DoclingDocument instead of stopping at a text dump. That object retains items such as headings, tables, pictures, page layout, and reading order, then exports Markdown, HTML, text, WebVTT, DocTags, DocLang, chunks, or lossless JSON.

That common structure is Docling's best reason to exist. A retrieval system can process a patent, a scanned invoice, and a slide deck through one downstream model instead of maintaining a parser-specific schema for each. PDF handling reaches into tables, code, formulas, image classification, charts, and OCR. The project also exposes a CLI and Python API, with separate routes for Docling Serve and an MCP server.

Local execution matters when source documents contain contracts, medical records, or internal reports that cannot go to a hosted parser. The repository uses the MIT license. Model licensing is separate, and the README explicitly tells users to check the original package for each model. That distinction belongs in procurement before a VLM or OCR engine reaches production.

What happened when we ran it

Our sandbox installed commit 2d5c590 in 71 seconds. The environment pulled 182 packages and occupied 7,131 MB on disk. The build completed in 2 seconds, and pip-audit reported 0 known vulnerabilities. This was an unprivileged Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets.

The test step failed with exit code 1 after 608 seconds. Pytest reported 2,210 passed, 79 failed, 77 skipped, 1 xfailed, and 5 collection or setup errors out of 2,294 tests. The checkout itself contained 1,772 files, roughly 153,659 lines of source, and used 186.7 MB. We also found 13 CI workflow files, a Dockerfile, and a tests directory.

The visible log tail repeatedly shows RapidOCR tests stopping because libGL.so.1 could not be opened. A separate fast-check test ended when a git merge-tree command returned an error. Those lines do not explain all 79 failures or the 5 errors, so assigning one cause to the whole result would be guesswork. The useful finding is narrower: a fresh Debian container can install and build Docling, but the full suite needs more runtime preparation than Python dependency resolution provided.

A 7,131 MB install changes the container plan

The README's quick start is one pip install followed by a one-line CLI conversion. Our 7,131 MB result shows what that simplicity costs in a clean environment. PyTorch and document models make this a substantial image before your own source files, cached artifacts, or optional engines arrive. A small PDF-to-text service should not pay that bill without proving it needs Docling's structure.

The installation guide is more candid than the quick start. CPU-only Linux users get a separate PyTorch index. Intel Macs need an older compatible PyTorch build and Python 3.12 or below. Optional extras cover ASR, VLMs, HTML rendering, EasyOCR, RapidOCR, and other engines. Video processing needs ffmpeg, while legacy Office formats and RTF need LibreOffice.

There is no hosted credential in the basic local route. Models and engine choices still become deployment inputs, so pin them and cache the required artifacts before an air-gapped rollout. If agents will call the MCP server or applications will use Docling Serve, add normal service controls: authentication where configured, request limits, timeouts, logs, and a retention policy for uploaded files.

OCR support depends on native libraries and hardware choices

Docling documents several OCR engines, but they do not share one installation path. Tesseract needs operating-system packages and TESSDATA_PREFIX. RapidOCR uses an optional extra with ONNX Runtime. Nemotron OCR has a much tighter lane: Linux x86_64, Python 3.12, and CUDA 13.x. Your engine choice determines the base image and accelerator requirements.

Our run makes that platform boundary tangible. Python installed 182 packages successfully, yet the RapidOCR test imports still failed when the container lacked libGL.so.1. The log establishes the missing library, not why every failing test broke. Build the exact production image first, then run its OCR path against scans in the languages and layouts you receive.

Conversion success also says little about correctness. A Markdown file can be created while reading order, a table cell, or a formula is wrong. Keep a representative gold set and compare page structure, headings, tables, symbols, and source references after upgrades. For records that need later reprocessing, lossless JSON is a safer stored result than Markdown alone.

The October 3 release is active, with a 997-item queue

GitHub recorded the latest push on October 3, 2026, and v2.133.0 was published the same day. That release adjusted RapidOCR model sizing and fixed handling across OpenDocument charts, Markdown code indentation, LaTeX encodings, DOCX numbering, CSV dialect detection, and uppercase extensions. This is active maintenance across the format surface.

GitHub also listed 997 open issues and pull requests combined, alongside 68,341 stars. The combined count is not a bug total, but it is a large queue to search before selecting a less common format or engine. Current code activity makes abandonment a poor reading of that number. It does suggest pinning versions and testing the particular conversions your application depends on.

Docling is the first parser I would test for a mixed, private document corpus where structure must survive conversion. The 2-second build is encouraging. The 7,131 MB environment and failed suite are the deciding counterweight. If your gold set proves that tables, reading order, and format coverage improve downstream results, the operational cost has a reason. Without that proof, use the smaller tool.

Alternatives

ProjectWhat it isPick it when
MarkItDown gh↗A smaller Python utility focused on turning common files into Markdown.pick this instead when simple Markdown conversion matters more than a rich document object and layout models.
MinerU gh↗A PDF and Office parsing project aimed at Markdown and JSON for AI workflows.pick this instead when difficult PDF extraction is the main job and you want to compare a more PDF-centered pipeline.
UnstructuredA document partitioning and ETL toolkit with connectors and chunking for language-model data.pick this instead when ingestion connectors and ETL plumbing matter more than Docling's document representation.

What people are saying

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

Sources

  1. Docling repository and README
  2. Docling installation guide
  3. Docling supported formats
  4. Docling v2.133.0 release

More ai tools reviews

universal-modder · DeepEP-Ascend · DeepGEMM-Ascend · hypoarena · jeeves · faster-whisper · the whole board →