LiteParse:457页PDF不到1秒,LlamaIndex把解析器用Rust重写了LiteParse:457 页 PDF 不到 1 秒,LlamaIndex 把解析器用 Rust 重写了
8.6k Star,Rust 重写,零 LLM 调用,比 PyMuPDF 快 88 倍。纯本地、全平台、Agent 开箱即用。
给 Agent 喂 PDF,第一步永远是解析。这个环节有多慢? PyMuPDF,Python 生态最常用的 PDF 库,解析一份 100MB、457 页的 PDF,68.8 秒 。等 Agent 看到文档内容,用户已经泡好咖啡了。 LiteParse 做同一件事:0.777 秒 。 不是多线程,不是 GPU,就是 Rust 替换了 Python。
LiteParse 是 LlamaIndex 团队今年 2 月开源的。一开始是 TypeScript 写的,只有 Node.js 能用。4 月底——LlamaIndex 做了一个狠决定:全量 Rust 重写 。 替换的不只是语言。底层引擎从 PDF.js 换成了 PDFium ——Google 给 Chromium 写的 PDF 渲染引擎,C 语言,原生速度。这才是 88 倍差距的核心原因:不是"用 Rust 所以快",是"换成 C 引擎 + Rust 绑定所以快"。
1 输入:PDF/DOCX/XLSX/PPTX/Images
2 ↓ LibreOffice / ImageMagick 转 PDF
3 PDFium(Google C 引擎,Chromium 同款)
4 ├─ 原生文本提取
5 ├─ OCR 降级(Tesseract 内置,只对图片区域)
6 └─ 智能合并(原生文本 + OCR 去重)
7 ↓ Grid Projection(空间布局重建)
8 输出:JSON(含bbox) / Text / Screenshots
v2.0 上周刚发。8.6k Star,20 个 contributors,50 个 release。社区增速很快。
大部分人看到 "Rust 重写" 就默认归因于语言。但 LiteParse 快的关键是 PDFium 。 PDFium 是什么?你打开 Chrome,点一个 PDF——渲染它的就是 PDFium。Google 维护了十几年,C 语言,经过亿级用户验证。PDF.js(火狐的方案,也是 v1 用的)是 JS 实现,架构上就不可能比 C 快。 LiteParse 做的事:用 Rust 写了一个 PDFium 的 FFI 绑定(pdfium-sys + pdfium crate),然后基于它做了文本提取、Grid Projection、OCR 合并。OCR 策略也很聪明:不是全文 OCR。 默认只对 PDFium 提取失败的区域(扫描件、图片嵌入)做 OCR。内置 Tesseract,也支持 HTTP OCR Server(EasyOCR / PaddleOCR 随便接)。这个"能省就省"的思路把 CPU 浪费压到最低。
装了 Python 版跑了几份真实文档。
1 from liteparse import LiteParse
2
3 parser = LiteParse()
4 result = parser.parse("irs_1040.pdf")
5 print(f"Pages: {len(result.pages)}, Items: {len(result.pages[0].text_items)}")
6 # Pages: 2, Items: 127
一份 IRS 税表,两页,127 个文本项。每个项有精确的 bbox 坐标和 confidence 分数:
1 {
2 "text": "Form 1040",
3 "bbox": [72.0, 96.0, 228.0, 118.0],
4 "confidence": 1.0
5 }
批处理也顺手:
1 lit batch-parse ./pdfs ./output --format json --recursive
截图功能是给 Agent 用的——lit screenshot doc.pdf 生成每页 PNG,喂给 LLM 看图。
很多人把"支持 Python"理解为"包了一层 CLI 调用"。LiteParse 不是——它用了 PyO3 (Rust → Python 原生绑定),Python 调用直接走 Rust 函数,零序列化开销。 四个入口:
入口 安装 实现 Rust cargo install liteparse原生 Python pip install liteparsePyO3 原生绑定 Node.js npm i @llamaindex/liteparsenapi-rs 原生绑定 浏览器 npm i @llamaindex/liteparse-wasmwasm-bindgen
WASM 版是真正的亮点。 38KB 的 JS 胶水 + wasm 二进制,直接在浏览器跑 PDFium。全程本地,零上传。Simon Willison 做了一个浏览器 Demo,验证过"解析过程中没有任何网络请求"。 但 OCR 在 WASM 里被砍了——系统依赖太多。官方方案是传 OCR callback(比如 tesseract.js)。
LiteParse v2 PyMuPDF pdfplumber LlamaParse(云) 引擎 PDFium (C) MuPDF (C) pdfminer (Py) LLM + Layout 457页耗时 0.777s 68.8s ~120s N/A(云延迟) OCR 内置 Tesseract 无 无 LLM 表格 基础 基础 强 强 (LLM)隐私 纯本地 纯本地 纯本地 上传 价格 免费 免费 免费 按 token Agent Skill ✅ 已集成 ❌ ❌ API
Agent 集成是独特优势:
1 npx skills add run-llama/llamaparse-agent-skills --skill liteparse
Claude Code / Codex / OpenCode 直接就能用。不用写胶水代码。
LiteParse 的 README 很诚实,开头就写了:
"Hitting the limits of local parsing? For complex documents (dense tables, multi-column layouts, charts, handwritten text, or scanned PDFs), you'll get significantly better results with LlamaParse."
这句话翻译:复杂文档别找我,去用付费版。 这是 LlamaIndex 的商业漏斗——LiteParse 是免费入口药,解决 80% 的简单场景。剩下 20% 的复杂表格、手写体、多栏排版,推你上 LlamaParse(按 token 付费的云服务)。 几个已知局限:
复杂表格不如 pdfplumber ——LiteParse 定位是"快",不是"表格专家"内存管理 ——大文档(>500MB)内存占用高,GitHub 有 open issue 在跟WASM 版无内置 OCR ——浏览器里只能靠传 callback,或者用 tesseract.jsGo 绑定暂无 ——有需求,但短期内不太可能有
适合:
AI Agent 流水线里的文档预处理——快、本地、有 skill RAG 系统的大批量文档解析——批量模式 + 并发 worker 浏览器端隐私敏感场景——WASM 全程不上传 替代 PyMuPDF 做基础文本提取——88x 速度差距太大 不适合:
需要精确表格提取——用 pdfplumber 或 LLM 方案 扫描件为主——OCR 质量取决于 Tesseract,不如 Gemini/Claude Vision 生产级复杂文档清洗——LlamaParse 云版才是他们主推的
LiteParse 是目前最快的开源 PDF 解析器 ,没有之一。 核心决策——PDFium 引擎 + Rust 绑定 + 选择性 OCR——让它在简单文档场景下比 PyMuPDF 快两个数量级。多语言原生绑定和 Agent Skill 让它对 AI 工作流特别友好。 但不要把它当万能药。LlamaIndex 的意图很清楚:LiteParse 解决"快",LlamaParse 解决"准"。你要的是哪个,取决于你的文档有多复杂。
LiteParse — Apache 2.0,Rust 70%。v2.0 上周刚发,8.6k Stars。