
v2 用 Rust 重写后, 网页端 80 页 PDF 0.5 秒解析完。LlamaIndex 把它打包成 4 语言绑定(Node.js / Python / Rust / WASM)+ 一键 Agent Skill, 接 Claude Code / Codex, 扫描件 PDF 不再是 RAG 的卡点。
写在前面
RAG 路上有个老敌人:扫描件 PDF——客户发来的财报、合同、报告, 内嵌是图片, 文本层是空的, 常规 pdfplumber / PyPDF2 提不出字, 要 OCR, 要么调云 API(费用 + 隐私 + 延迟), 要么起 Tesseract 自己跑(运维)。
LlamaIndex 团队的 run-llama/liteparse 是这条路径上的 ”本地优先“ 答案:
- v2 完全用 Rust 重写——网页 WASM 跑 80 页 PDF 0.5 秒
- 本地优先——默认无云依赖、无 LLM、无 API Key
- OCR 可插拔——内置 Tesseract 零配置, 或接 HTTP OCR 服务器(EasyOCR/PaddleOCR/ 自定义)
- 空间文本 + bounding box——保留布局,Markdown 输出直接喂 LLM/RAG
- 4 语言绑定——Node.js / Python / Rust / WASM,Agent Skill 一行装
一、它解决什么问题
| 痛点 | LiteParse 的解法 |
|---|---|
| 扫描件 PDF 提取不出文字 | 内置 Tesseract OCR(零配置), 或接 EasyOCR/PaddleOCR HTTP 服务器 |
| 想本地解析, 不想调云 API | 完全本地运行, 无云依赖, 无 API Key, 无隐私顾虑 |
| PDF 转 Markdown 喂 RAG | 结构化 Markdown 输出——标题 / 表格 / 列表 / 图片 / 链接全保留 |
| 提取结果要带坐标(表格还原) | bounding box 定位信息——{text, bbox, page, ...} |
| 想在浏览器里解析(无后端) | WASM 绑定——80 页 PDF 0.5 秒 |
| 想给 Agent 一行装 | npx skills add run-llama/llamaparse-agent-skills --skill liteparse |
| 一份 PDF 要多格式输出 | JSON / Text / Markdown / PNG screenshot 四种 |
| 不知道要不要走 OCR | 复杂度检测——先 cheap 判断再决定是否 full parse |
二、项目基本信息
| 字段 | 值 |
|---|---|
| GitHub | run-llama/liteparse |
| 文档 | developers.llamaindex.ai/liteparse |
| 在线试 | run-llama.github.io/liteparse |
| 一句话定位 | A fast, helpful, and open-source document parser——本地优先 PDF/Office 解析 + 可选 OCR |
| 作者团队 | LlamaIndex(run-llama) |
| Stars | 11,495 |
| Forks | 778 |
| Open Issues | 18(健康度极高) |
| License | Apache-2.0 ✅ |
| 主语言 | Rust(v2 重写后) |
| 首次 commit | 2026-02-09 |
| 最近 commit | 2026-07-11(5 个月,1 周前还在迭代) |
| 仓库大小 | 14.4 MB |
| Topics | document-ocr, document-processing, ocr, ocr-recognition, pdf, pdf-parser, text-extraction |
| npm 包 | @llamaindex/liteparse (v2.5.1, 2026-07-10) |
| WASM 包 | @llamaindex/liteparse-wasm |
| Python 包 | liteparse |
| Rust crate | liteparse |
| Agent Skill | run-llama/llamaparse-agent-skills (skill: liteparse) |
版本节奏 :v2.4.0 (6/30) → v2.4.1 (7/6) → v2.5.0 (7/7) → v2.5.1 (7/10),11 天发 4 版, 每周迭代,Rust 生态 + npm 双发布。
三、架构:Rust Core + 4 语言绑定
Input (PDF/DOCX/XLSX/PPTX/IMG)
↓
Rust Core (PDFium + Tesseract + LibreOffice + ImageMagick)
├─ PDF → EXTRACT(PDFium 文本)
├─ DOCX/XLSX/PPTX/IMG → CONV(LibreOffice / ImageMagick 转 PDF)
└─ EXTRACT → OCR(Tesseract/HTTP/ 自定义) → MERGE → GRID PROJ
↓
Output: JSON / TEXT / SCREEN (PNG) / Markdown
↓
Bindings: Node.js / Python / Rust / WASM / CLI
| 模块 | 实现 |
|---|---|
| EXTRACT | PDFium C library——Google Chrome 用的那个 PDF 引擎 |
| OCR | Tesseract(内置, 零配置) / HTTP OCR 服务器(EasyOCR/PaddleOCR/ 自定义) |
| CONV | LibreOffice(Office 文件) / ImageMagick(图片) |
| MERGE | Native 文本 + OCR 结果融合 |
| PROJ | Grid Projection——空间布局重建(行 / 列 / 表格) |
| SCREEN | PNG 页面截图(给 LLM agent 看) |
亮点 :EXTRACT 和 OCR 是分开的两条路径——如果是数字 PDF(有文本层), 直接走 EXTRACT 不调 OCR; 如果是扫描件, 再走 EXTRACT → OCR → MERGE。这条 ” 复杂度检测 → 选择性 OCR“ 路径让 90% 的 ” 数字 PDF” 解析 比全跑 OCR 快 10-100×。
四、四种语言绑定: 同一个 Rust Core, 四种入口
4.1 Node.js / TypeScript —— Agent 友好
npm i -g @llamaindex/liteparse
提供 lit CLI:
# 一行命令, 本地 PDF → text
lit parse ./contract.pdf --format text --no-ocr -o /tmp/contract.txt
# Markdown 输出, 直接喂 RAG
lit parse ./report.pdf --format markdown -o /tmp/report.md
# 启 HTTP OCR 服务器(EasyOCR 等)
lit parse ./scan.pdf --ocr-url http://localhost:8080/ocr
配合 effective-liteparse skill 使用(本机已装):
一条铁律:“parse ONCE to a file, then search the file”——
lit parse每次都重新跑全文, 反复 search 是 #1 浪费场景。正确用法是 一次解析写文件, 所有搜索都对文件, 不要每次 search 都 re-parse。
4.2 Python
pip install liteparse
from liteparse import parse
result = parse("./report.pdf")
for page in result.pages:
for block in page.blocks:
print(f"[{block.bbox}] {block.text}")
4.3 Rust —— 极快, 适合 CLI / 服务器侧
cargo install liteparse # CLI
cargo add liteparse # 作为 lib
适合:Lambda / Cloudflare Worker / 高并发 PDF 处理 pipeline。
4.4 Browser (WASM) —— 80 页 PDF 0.5 秒在浏览器里
npm i @llamaindex/liteparse-wasm
import {parse} from '@llamaindex/liteparse-wasm';
const result = await parse(pdfFile); // 浏览器内, 无后端
场景 :Notion / Figma / Web 文档编辑器 想让用户上传 PDF 自动解析, 不需要后端 ——所有解析在浏览器跑, 隐私 + 延迟 + 成本三杀。
五、5 大核心能力(对比 PyPDF2/pdfplumber/Tika)
5.1 选择性 OCR(Complexity Detection)
# 自动判断要不要走 OCR
lit parse ./doc.pdf --auto-ocr
| 文档类型 | LiteParse 行为 | 其他工具行为 |
|---|---|---|
| 数字 PDF(有文本层) | 只走 EXTRACT,10-100× 快 | PyPDF2 也快, 但 Tesseract 全跑要 1-10 秒 / 页 |
| 扫描件 PDF(无文本层) | 自动检测 → 走 OCR | Tesseract 全跑 |
| 混合 PDF(部分扫描) | Page-level 检测, 按需 OCR | 工具不区分, 要么全跑要么全不跑 |
这是 LiteParse 的独门能力 —— 复杂度检测 + 选择性 OCR, 数字 PDF 跳过 OCR 直接走 PDFium,大批量 RAG 文档管道必备。
5.2 多格式输出:JSON / Text / Markdown / PNG
| 格式 | 用途 |
|---|---|
| JSON | 完整结构 (text + bbox + page + block type), 给程序 |
| Text | 纯文本, 保留布局,给 grep/cat |
| Markdown | 标题 / 表格 / 列表 / 图片 / 链接,直接喂 RAG |
| PNG screenshot | 页面渲染图,给多模态 LLM(GPT-4V/Claude Vision) |
Markdown 输出示例:
# Q4 2025 Report
## Revenue
| Quarter | Revenue | Growth |
|---|---|---|
| Q3 2025 | $4.2M | 12% |
| Q4 2025 | $5.1M | 21% |
> Note: Numbers are unaudited.

表格自动识别 ——不是简单文本提取, 是 结构化 Markdown,RAG 的 chunking + embedding 质量大幅提升。
5.3 Bounding Box 空间信息
每个文本块带 bbox:
{
"page": 1,
"block": 0,
"type": "heading",
"level": 1,
"text": "Q4 2025 Report",
"bbox": {"x": 100, "y": 200, "width": 800, "height": 40},
"confidence": 0.99
}
用途:
– 表格结构重建(同 x 对齐 = 同列)
– 阅读顺序推断(y 排序)
– 跨页表格合并
– 给 VLM(视觉语言模型)做 ground truth
5.4 页面截图(给多模态 LLM)
lit parse ./doc.pdf --format png --output-dir /tmp/pages/
每页一张 PNG,Claude Vision / GPT-4V 直接看图——比纯文本更适合图表、流程图、复杂版式。
5.5 多语言绑定(Rust + N-API + PyO3 + WASM)
| 绑定 | 技术 | 场景 |
|---|---|---|
| Node.js | napi-rs | CLI / Server / Agent |
| Python | PyO3 | Jupyter / Data Science / LlamaIndex pipeline |
| Rust | 原生 cargo | 服务器侧、嵌入式 |
| WASM | wasm-bindgen | 浏览器内解析, 零后端 |
所有绑定共享同一个 Rust Core——bug 修一处, 所有语言生效。
六、跟 5 个主流方案的对比
| 维度 | LiteParse | PyPDF2 / pdfplumber | Apache Tika | LlamaParse(云) | Unstructured.io |
|---|---|---|---|---|---|
| 形态 | Rust + 4 绑定 | Python lib | Java server | 云 API | Python lib |
| 本地 | ✅ 完全本地 | ✅ 完全本地 | ✅ 完全本地 | ❌ 云服务 | ✅ 完全本地 |
| OCR | ✅ Tesseract/HTTP | ❌ 需自己接 | ✅ Tesseract 内置 | ✅ 内置 LLM OCR | ✅ 内置 |
| 速度 | ⚡ 极快(Rust+WASM) | 中(Python) | 慢(Java 启动) | 网络延迟 | 中 |
| 空间信息(bbox) | ✅ | ✅(pdfplumber 部分) | ⚠️ 部分 | ✅ | ✅ |
| Markdown 输出 | ✅ 结构化 | ⚠️ 需自己拼 | ⚠️ 需配置 | ✅ 顶级 | ✅ 顶级 |
| 多格式输出 | JSON/Text/MD/PNG | Text/Tables | XML/JSON/Text | Markdown | JSON/CSV/MD |
| Agent Skill | ✅ npx skills add |
❌ | ❌ | ❌ | ❌ |
| WASM 浏览器内 | ✅ 0.5s/80 页 | ❌ | ❌ | ❌ | ❌ |
| License | Apache-2.0 ✅ | BSD | Apache-2.0 | 商业 + 免费层 | Apache-2.0 |
| Stars | 11K | 6K+ (PyPDF2) | 3K (Tika) | — | 12K |
| 维护 | LlamaIndex 团队(超活跃) | 个人维护 | Apache 基金会 | LlamaIndex 商业 | 创业公司 |
决策树
| 场景 | 用 |
|---|---|
| 本地 Python RAG 管道 / 数字 PDF | pdfplumber(轻量, 够用) |
| 扫描件 PDF / OCR 必须 | LiteParse ⭐(选择性 OCR) |
| 浏览器内解析(无后端) | LiteParse WASM |
| 复杂表格 / 多列 / 图表 / 手写体 | LlamaParse 云服务(LiteParse 在 README 也明确指向它) |
| 企业级 ETL pipeline / 多格式 | Apache Tika / Unstructured.io |
| Agent 装 Skill 一行起飞 | LiteParse(npx skills add) |
七、3 步跑通实战
7.1 安装(Node.js + Agent Skill)
# 1. 装 npm 包 + 验证
npm i -g @llamaindex/liteparse
lit --version
# → LiteParse v2.5.1
# 2. 装 Agent Skill(Claude Code / Codex CLI / Opencode)
npx skills add run-llama/llamaparse-agent-skills --skill liteparse
# 3. 解析一个 PDF
lit parse /tmp/report.pdf --format markdown --no-ocr -o /tmp/report.md
# → 数字 PDF 直接走 PDFium, 无 OCR 调用
7.2 实战 1 — 客户发来的扫描件合同
# 扫描件 → OCR + Markdown
lit parse ./contract.pdf \
--format markdown \
--ocr tesseract \
--ocr-lang chi_sim+eng \
-o /tmp/contract.md
# 看效果
head -50 /tmp/contract.md
# → " 本合同由甲方..." 结构化输出, 可直接喂 LLM 摘要
7.3 实战 2 — 自定义 OCR 服务器
# 起 EasyOCR/PaddleOCR 服务, 接进来
lit parse ./scan.pdf \
--ocr-url http://localhost:8080/ocr \
--format json \
-o /tmp/scan.json
# JSON 输出带 bbox
python3 -c "
import json
d = json.load(open('/tmp/scan.json'))
for page in d['pages']:
for block in page['blocks']:
print(f'[p{page[\"number\"]} {block[\"bbox\"]}] {block[\"text\"][:80]}')
"
7.4 实战 3 — Agent 让 Claude 直接读 PDF
给 Claude Code:
读一下 ~/Downloads/2026-roadmap.pdf 第 3 页那张甘特图, 告诉我 Q3 计划交付什么?
Claude Code 自动:
1. 调
effective-liteparse skill 的 SKILL.md → lit parse
2. 选择
--format png --pages 3 出页面截图
3. 用 Vision 看图 → 提取甘特图文字
4. 回答你
整套流程不离开 Claude Code, 无云 API, 无 API Key。
八、风险与坑
- v2 还在快速迭代 —— 5 个月,11 天 4 版,API/CLI 参数可能在 v3 大改, 生产锁定前确认 API 稳定性
- 复杂文档还是不如 LlamaParse 云 —— LiteParse README 自己写 ”Hitting the limits of local parsing?” 明确推荐升级到 LlamaParse 云——多列表格、图表、手写、密集扫描,LiteParse 不够
- OCR 默认 Tesseract 速度一般 —— 简体中文手写体 / 复杂版式 Tesseract 准确率 70-85%, 生产建议接 EasyOCR/PaddleOCR HTTP 服务
- 首次安装有 native 依赖 —— Rust toolchain + LibreOffice + ImageMagick,Docker image 基础镜像不是 alpine——镜像是 Ubuntu/Debian 大约 500MB
- Apache-2.0 但 LlamaIndex 商业策略 —— Apache-2.0 不限制商用, 但 README 把 LlamaParse 云放最显眼位置, 长期看 LlamaIndex 重心会向云偏移, 开源 LiteParse 可能变 ” 开发者版 ”
- WASM 包大小 ——
@llamaindex/liteparse-wasm体积 5-10 MB(解压后), 首屏加载要考虑 - 不是 PyMuPDF 的直接替代 —— 如果你只想要文本层 + bbox 不需要 OCR,PyMuPDF(Python) 更快更轻,LiteParse 的优势是 OCR + 多绑定 + Agent Skill
九、对比 LiteParse v1 → v2 的演进
| 维度 | v1 (log 分支) | v2 (main) |
|---|---|---|
| 核心语言 | TypeScript | Rust |
| 速度 | 中 | 10-50× 提升 |
| WASM | 体积大, 慢 | 80 页 0.5 秒 |
| OCR | 需外挂 | 内置 + 可插拔 |
| 复杂度检测 | ❌ | ✅ |
| 多语言绑定 | 仅 Node | Node/Python/Rust/WASM |
| 仓库 | logan/liteparse-v1 | main |
v2 是一次重写级升级——Rust 换来了速度 + WASM + 跨语言,TypeScript 版本在 log 分支保留(v1 用户可继续)。
十、总结
三个最值得装的理由
- v2 Rust 重写后真的快 —— 浏览器 WASM 80 页 0.5 秒,Node.js 服务器侧速度提升 10-50×,RAG pipeline 不再卡在 PDF 解析
- 本地优先 + OCR 可插拔 —— 数字 PDF 跳过 OCR 直走 PDFium(快), 扫描件才走 Tesseract(准), 复杂度检测是别人没有的杀手锏
- Agent Skill 一行起飞 ——
npx skills add run-llama/llamaparse-agent-skills --skill liteparse+effective-liteparse配套 skill,Claude Code 直接读 PDF 不需要后端
一句话 ” 先试一周 ”
给 Claude Code 装
run-llama/llamaparse-agent-skills/liteparseskill,接下来一周每次需要读 PDF/DOCX/PPTX 都让它做 ——你会发现 上传文档 → 让 Agent 直接总结 的体验完全消失门槛,RAG 文档管道本地化 比调云 API 还香。
什么时候 不用 LiteParse
| 场景 | 用 |
|---|---|
| 复杂表格 / 图表 / 手写体 / 扫描版式 | LlamaParse 云(LiteParse README 自己推荐) |
| 极简数字 PDF 文本提取 | PyMuPDF / pdfplumber(LiteParse 太重) |
| Java 企业级多格式 ETL | Apache Tika |
| 不需要 OCR/ 只要 bbox | pdfplumber(Python)或 pdf.js(JS) |
| 浏览器内不限制大小 | pdf.js(LiteParse WASM 体积偏大) |
参考
- run-llama/liteparse GitHub | LlamaIndex 文档 | 在线试 | 中文 README
- npm @llamaindex/liteparse | WASM | PyPI liteparse | crates.io liteparse
- Agent Skill: run-llama/llamaparse-agent-skills (
--skill liteparse) - 上行:LlamaParse 云服务 | 对比:PyMuPDF / pdfplumber / Apache Tika / Unstructured
- LiteParse v1 历史:logan/liteparse-v1
- CSDN 报道:LiteParse v2.0 Rust 重写 | tool.lu 收录:run-llama/liteparse
- 本站已装相关 skill:
effective-liteparse(基于@llamaindex/liteparse的廉价使用模式)