Unlimited-OCR vs xberg
Baidu's open OCR VLM that parses entire multi-page documents in one shot — 'unlimited' long-horizon parsing pushing DeepSeek-OCR further. MIT weights on HF; serve via transformers, vLLM or SGLang. — 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.
Engine vs model: xberg parses 96 formats deterministically; Unlimited-OCR throws a VLM at whole documents. Same slot in a RAG ingestion pipeline.
| Unlimited-OCR | xberg | |
|---|---|---|
| Stars | 27k | 9.4k |
| Forks | 2.9k | 593 |
| Language | Python | Rust |
| License | MIT | MIT |
| Last activity | 3 days ago | today |
| Topics | ocr, rag | ocr, rag, local |
| Curated connections | 5 | 7 |
Unlimited-OCR — the curator's take
The current bar if you batch-parse long PDFs: one-shot multi-page parsing keeps cross-page structure (tables spanning pages, running sections) that page-by-page OCR pipelines lose, and first-party vLLM/SGLang recipes plus official Docker images make serving unusually painless for a fresh research model. NOT a lightweight dependency — it's a GPU-hungry VLM; for occasional single pages classic OCR or a hosted API is cheaper. Inference-only repo: no training code, and evaluation beyond the paper's claims is on you.
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.