All comparisons
Comparison

marker vs MinerU: local pipeline versus layered backends

Both turn PDFs into markdown, but marker commits to one local surya stack with an optional LLM pass, while MinerU exposes three inference backends and a wider integration surface. Pick marker for scriptable local conversion; pick MinerU when you need backend choice, integration hooks, or offline deployment on non-NVIDIA hardware.

Published September 21, 2026

At a glance

Projectdatalab-to/markeropendatalab/MinerU
LicenceApache-2.0Permissive: commercial use allowedCustom licenceCustom licence: read the LICENSE file
MaintenanceCommits in the last six monthsLast push September 13, 2026Commits in the last dayLast push September 29, 2026
LanguagePythonPython
GitHub stars40,09880,836
Read moreOur analysisGitHubOur analysisGitHub

Which one to choose

marker

Choose marker if you want a single Python package that converts PDFs plus office and web formats into markdown, JSON, chunks and HTML on your own GPU, CPU or Apple Silicon machine, and you are comfortable running a local surya inference server with Docker or llama.cpp.

MinerU

Choose MinerU if you need to switch between pipeline, vlm-engine and hybrid-engine backends, want formula output as LaTeX and tables as HTML with reading-order preservation, or plan to wire parsing into LangChain, Dify, FastGPT, an MCP server or a domestic AI chip deployment.

How the two projects split the conversion problem

marker and MinerU both parse documents into markdown and JSON, but they divide the work differently. Marker, per its README, is one pipeline: a local surya inference server handles layout and OCR, and an optional LLM pass merges tables across pages, formats inline math and extracts form values. The mode switch (balanced on GPU, fast on CPU or MPS) decides how much VLM work happens. In balanced mode the surya VLM does layout, OCRs inline math, and re-OCRs the whole page whenever embedded text looks bad. In fast mode a lightweight rf-detr layout detector plus pdftext extracts text, and the VLM is reserved for equations, surgical block repair and a single full-page pass on scanned or mostly bad pages. MinerU instead exposes three inference backends: pipeline for fast and stable CPU or GPU work without hallucination, vlm-engine for high accuracy through vLLM, LMDeploy or mlx, and hybrid-engine for high accuracy with native text extraction and low hallucination. That architectural difference matters at adoption time. Marker asks you to choose a device and a mode; MinerU asks you to choose a backend and, in the hybrid case, an effort level (medium or high) that trades parsing speed against accuracy and feature support. The README states that medium does not support image analysis, so maximum accuracy or image analysis requires high.

Getting each one running on your own hardware

Marker installs with pip install marker-pdf for PDFs, and pip install marker-pdf[full] when you need the other formats. It requires Python 3.10 or newer and PyTorch. The surya server auto-spawns on first use, but you must supply the runtime: Docker plus the NVIDIA Container Toolkit for an NVIDIA GPU running vllm, or the llama-server binary from llama.cpp for CPU and Apple Silicon. MinerU declares Python >=3.10,<3.14 in pyproject.toml, so a Python 3.14 environment is outside the supported range. Its README describes automatic model source selection on first install, local cache checks before downloading, and model source configuration for offline use. That is a real operational difference: marker's README does not document a model-source selector, while MinerU's changelog documents one. Neither project's README documents rollback of a model or package upgrade, so treat version pinning as your own responsibility. MinerU also documents a zero-install web version, a desktop client and an API, which marker does not offer in its README; marker instead points to Datalab's managed platform, which runs a different model called Chandra rather than marker itself.

Operations and scaling under load

Marker's operational story is a local inference server plus a Python process. The README states that a clean digital document without equations never starts the VLM in fast mode, which is the cheapest path and the one to design around for high-volume born-digital PDFs. Balanced mode re-OCRs an entire page when any embedded text is bad, so one bad text layer can multiply cost per page. The optional --use_llm pass adds an external API call to Gemini, Claude, OpenAI-compatible, Azure, Vertex, OpenRouter or Ollama endpoints, defaulting to gemini-3.5-flash; that introduces network latency, per-page token cost and a data path off your machine unless you point it at a local Ollama model. MinerU's pipeline backend is described as fast and stable with no hallucination, and the 3.4 changelog reports about 100% faster OCR processing and roughly 11% higher OCR accuracy on OmniDocBench v1.6 after moving to PP-OCRv6. The 3.3 changelog reports that hybrid effort=medium cuts accuracy by only 0.13 points against high while speeding parsing by 35% to 220% depending on device and scenario. Those are the vendor's own figures from its changelog, not independent measurements. For batch work, MinerU's backend choice gives you a CPU-safe default and a GPU-accelerated option in the same package, while marker's fast mode is the CPU path and balanced is the GPU path.

Where each project falls short

Marker's weakest point is licensing of the model weights. The code is Apache-2.0, but the weights use a modified AI Pubs Open Rail-M license that is free for research, personal use and startups under $5M funding or revenue. A company above that threshold needs a commercial licence from Datalab's pricing page, and the README does not document a self-serve path for that. Marker also assumes you can run a local inference server at all; if your environment forbids Docker, vllm or llama.cpp, the project does not fit. MinerU's weakest point is its licence. GitHub classifies it as Other, and the repository's own analysis points to LICENSE.md and MinerU_CLA.md as documents you must read before committing. That is not a permissive OSI licence, and the README does not summarise its terms, so legal review is unavoidable. MinerU is also overkill for plain text PDFs that pdftext or pypdf already handle, and its Python support window stops below 3.14. Both projects are silent on rollback procedures, and neither README documents a supported downgrade path.

Licence and maintenance implications

Marker's Apache-2.0 code is easy to adopt; the constraint sits in the weights. MinerU's custom licence is the constraint itself, and because GitHub cannot classify it, you cannot assume Apache or MIT terms from the repository metadata. Both repositories are unarchived and were pushed recently: marker on 2026-09-13 and MinerU on 2026-09-17, so neither shows the six-month inactivity that would rule out calling it maintained. Marker's release cadence visible here runs v2.0.0 on 2026-07-20, v1.10.2 on 2026-01-31 and v1.10.1 on 2025-09-30. MinerU's visible releases are v4.0.0a6 and mineru-3.4.5 on 2026-08-14, plus v4.0.0a5 on 2026-07-30; the v4 line is still in alpha, so production users should watch whether they need the stable 3.x line. Neither project's README documents a long-term support policy or a deprecation schedule for model weights, so plan to pin versions and re-test on upgrade.

Choosing by scenario

For a small team converting born-digital PDFs on a CPU-only laptop, marker's fast mode is the lighter dependency: pip install marker-pdf, Python 3.10+, and llama.cpp for CPU or Apple Silicon. For a team that must process scanned documents, handwriting and multi-column layouts across 109 languages, MinerU's pipeline backend with PP-OCRv6 is the documented option, and the 3.4 changelog reports the OCR speed and accuracy improvements. For a RAG stack already using LangChain, LlamaIndex, RAGFlow, Dify or FastGPT, MinerU's README lists native integrations and an MCP server; marker's README does not document comparable framework connectors, so you would build that glue yourself. For a company above the $5M funding or revenue threshold that wants marker's model weights, budget for a commercial licence or evaluate Datalab's managed platform instead. For an air-gapped deployment on Ascend, Cambricon, Enflame, MetaX, Moore Threads, Kunlunxin, Iluvatar, Hygon, Biren or T-Head chips, MinerU's README names those targets and marker's does not. For a pipeline that needs an LLM to merge cross-page tables and extract form values, marker's --use_llm flag is the documented mechanism; MinerU's README does not document an equivalent external-LLM pass.

Bottom line

Pick marker when you want one Apache-2.0 Python package, a local surya server and an optional LLM pass, and your company is under the $5M weight-licence threshold. Pick MinerU when you need backend choice, offline deployment on non-NVIDIA chips, or framework integrations, and your legal team accepts a custom licence. Verify first: for marker, that Python is 3.10+, that marker-pdf installs against your torch pin, and that your formats are covered by the extras you installed; for MinerU, that LICENSE.md and MinerU_CLA.md are acceptable, that your Python is inside >=3.10,<3.14, and that model downloads work from your network or a local cache. If neither licence clears your review, the honest answer is to keep looking rather than to assume the code licence covers the weights.

Sources

  1. datalab-to/marker repository
  2. datalab-to/marker README
  3. opendatalab/MinerU repository
  4. opendatalab/MinerU README