MinerU vs xberg
Heavyweight document-to-markdown/JSON parser — PDFs plus Office (docx/pptx/xlsx) through layout analysis and OCR into LLM-ready output for RAG and agentic pipelines. 73k stars, self-hostable. — versus — Rust-core extraction orchestrator with 15 language bindings: 96 formats — PDF, Office, images, audio, code, web — to clean text, tables and RAG-ready chunks. OCR and structured extraction built in.
Both turn documents (PDFs, Office) into LLM-ready text/JSON for RAG. MinerU is a heavyweight Python/VLM parser tuned for max-fidelity layout + OCR; Xberg is a polyglot extraction orchestrator — 96 formats, 15 language bindings, its own ONNX/Candle/VLM OCR — with a plugin layer that can run MinerU as a backend. Pick MinerU alone for the hardest scanned PDFs; Xberg when you need breadth, many languages, or one pipeline that calls MinerU only where it earns it.
| MinerU | xberg | |
|---|---|---|
| Stars | 82k | 9.4k |
| Forks | 6.8k | 593 |
| Language | Python | Rust |
| License | LicenseRef-MinerU-Open-Source-License | MIT |
| Last activity | yesterday | today |
| Topics | ocr, rag | ocr, rag, local |
| Curated connections | 14 | 7 |
MinerU — the curator's take
The incumbent when document variety is the problem: beyond PDFs it handles Office formats, with mature layout analysis (reading order, tables, formulas) and a huge user base shaking out edge cases. NOT the lightest option — it's a full pipeline with model downloads and real hardware appetite; for a handful of clean PDFs a smaller tool is faster to stand up. Licence is Apache-2.0 plus MinerU's own terms: commercial use is fine until you pass 100M MAU or US$20M monthly revenue, and online services must attribute.
xberg — the curator's take
The polyglot pick: reach for Xberg when your stack spans Rust, Python, Node, Go, the JVM or WASM and you want ONE extraction engine instead of a per-language pipeline. Handles 96 formats — PDFs, Office, images, audio/video (Whisper), source code (306 languages, syntax-aware chunking) — and websites, dynamic pages included. OCR is built in, not bolted on: ONNX and Candle models run locally, or any VLM (Gemini, Mistral, …) through LiteLLM; on top sit structured extraction to a JSON schema and NER, keywords, classification and captioning. Think of it as a parallel extraction orchestrator with a plugin architecture — a MinerU backend or your own local VLM can sit behind it — rather than a single parser. It's the v1 successor to Kreuzberg. Don't reach for it if all you need is max-fidelity parsing of messy scanned PDFs and nothing else (a dedicated VLM like MinerU or olmocr is the shorter path, though either can also run behind Xberg), or if you're Python-only and already committed to LlamaIndex's own readers.