LiteParse PDF Parser: Fast Local Document Parser
LiteParse is a fast, local PDF parser that wins on benchmarks against every free alternative tested — markitdown, opendataloader, and pdf-inspector — while staying completely offline and dependency-free. It is worth using when you need speed, bounding box data, and no cloud dependency; skip it when your documents have dense tables, multi-column layouts, or require accurate chart or LaTeX rendering, because even its own README flags those as hard limits and benchmark numbers confirm chart parsing scores near zero across the board.
What is LiteParse
LiteParse is a standalone Rust PDF parser that extracts spatial text with bounding boxes, converts documents to Markdown, and includes bundled Tesseract OCR — all without a cloud dependency or API key. It targets developers who need fast, structured PDF text extraction in their own pipeline rather than a managed service.
Key features
- ✓Fast spatial text parsing via PDFium (~2-5ms per page for raw text extraction)
- ✓Bundled Tesseract OCR — zero setup required; also accepts any HTTP OCR server via a simple API spec
- ✓Markdown, JSON, and plain text output with precise bounding box coordinates per text item
- ✓Layout block classification (headings, paragraphs, tables, list items, code, figures) with per-block bounding boxes
- ✓Complexity detection — cheaply check whether a document needs OCR before committing to full parse
- ✓Screenshot generation for individual pages — useful for agent-based document workflows
- ✓Worker pool mode in Python and Node.js — rogue documents get killed by name with hard timeouts, preventing pipeline stalls
- ✓Multi-language: Rust library, Python (PyO3), Node.js/TypeScript (napi-rs), and browser WASM
Installation
Python: pip install liteparse | Node.js: npm i -g @llamaindex/liteparse | Rust: cargo install liteparse (CLI) or cargo add liteparse (library) | Browser: npm i @llamaindex/liteparse-wasm
Using LiteParse from the CLI
The `lit parse` CLI parses a PDF and outputs structured text: bash # Basic parse — outputs text to stdout lit parse document.pdf # Markdown output with layout reconstruction lit parse document.pdf --format markdown -o output.md # Specific page range lit parse document.pdf --target-pages "1-5,10,15-20" # JSON with bounding boxes and layout blocks lit parse document.pdf --format json --extract-blocks -o output.json # Disable bundled OCR lit parse document.pdf --no-ocr From Python: python from liteparse import parse result = parse("document.pdf", extract_blocks=True) From Node.js: javascript import { parse } from "@llamaindex/liteparse"; const result = await parse("document.pdf", { extractBlocks: true });
Strengths
- ✓Beats markitdown, opendataloader, and pdf-inspector on ParseBench, opendataloader-bench, and olmOCR-bench — all evaluated on the same machine with the same scorer
- ✓Bundled Tesseract OCR means zero external dependencies for basic OCR use cases
- ✓Bounding box output is first-class and well-structured, with per-table-cell coordinates in JSON
- ✓Worker pool mode in Python and Node.js lets you kill rogue document parses by name without stalling the pipeline
- ✓Fully local — no API key, no cloud call, no telemetry
- ✓Apache-2.0 license is genuinely permissive for commercial use
What LiteParse does not do well
- △Dense tables, multi-column layouts, and scanned documents produce unreliable Markdown — the README states this directly and the benchmarks show it
- △Chart parsing scores near zero across every tool in benchmarks; no tool reconstructs chart data
- △Math/LaTeX output is 0% across the board — if your corpus includes scientific PDFs with equations, LiteParse will not help
- △Markdown output is purely rule-based and heuristic, so edge cases in complex documents render imperfectly
- △Benchmark numbers are from 2026-09-09 and cover only three public corpora — real-world performance on your specific document mix may differ
- △No LLM or GPU involvement means complex document reconstruction quality is inherently bounded compared to cloud services
How LiteParse compares to alternatives
Frequently asked questions
Yes. LiteParse is Apache-2.0 licensed, which is a permissive license that allows commercial use, modification, and redistribution without royalties or restrictions.
Rust (cargo add liteparse), Python (pip install liteparse via PyO3), Node.js and TypeScript (npm i @llamaindex/liteparse via napi-rs), and browser/WASM (npm i @llamaindex/liteparse-wasm). The same lit CLI ships across all non-WASM installs.
No. LiteParse runs entirely offline. No API key is required, no telemetry is sent, and the bundled Tesseract engine works without any external service.
PDFium-based text extraction runs at roughly 2-5ms per page, according to the README. Actual end-to-end throughput depends on document complexity, image content, and whether OCR is enabled.
Yes — LiteParse includes bundled Tesseract OCR with zero setup. For better OCR quality on scanned documents, you can swap in PaddleOCR via the HTTP OCR API specification. Benchmark scores improve with PaddleOCR on multi-column and old-scan test categories.
LiteParse is local, rule-based, and fast. LlamaParse is a cloud service that uses LLM-based reconstruction for better Markdown quality on hard documents — dense tables, multi-column layouts, charts, and scans. LiteParse's own README recommends LlamaParse when you hit those limits.
The problem it solves
Local PDF parsing tools often produce flat text or require LLM-based pipelines, and it's hard to know whether a given document actually needs OCR before spending cycles on it. Teams also need spatial coordinates for downstream tasks like citation matching, but getting bounding boxes from local tools is either absent or requires heavyweight setups.
Best use cases
- •Extracting structured text with bounding boxes from native PDFs for citation matching or redaction pipelines
- •Converting clean PDFs to Markdown for ingestion into RAG systems without a cloud API call
- •Adding OCR to a document pipeline via the built-in Tesseract integration or plugging in PaddleOCR via HTTP
- •Batch-processing PDFs at speed in a Node.js or Python service where cloud dependencies are unacceptable
- •Generating page screenshots for LLM agents that need to 'see' a document alongside its text
- •Pre-filtering documents with complexity detection to decide whether to route to a heavier parser or reject early
Who should try it — and who should skip
Reach for LiteParse when you process clean-to-moderate PDFs and need speed, bounding box data, or an OCR-capable pipeline without cloud dependencies. The bundled Tesseract makes it particularly useful for teams that want OCR without infrastructure. If your documents are heavy on dense tables, complex layouts, charts, or scientific equations — or if accuracy on edge cases outweighs local processing — use LlamaParse instead and pay for the cloud. LiteParse is not trying to win on quality for the hardest documents; it is trying to win on speed and simplicity for the common case.
Related repositories
Curious whether liteparse is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about liteparse.
