跳到正文
Hacker News· vardhan1237·· 6 小时前AI 评分55

PaperPilot 发布纯 Rust 本地 PDF 引擎,支持 WASM 与 MCP

PaperPilot – Zero-Cloud, Pure-Rust PDF Engine with WASM and MCP

AI 导读

PaperPilot 发布纯 Rust 编写的 PDF 工具集,同一引擎可运行在 MCP 服务器、CLI、浏览器 WASM、Tauri 桌面应用和本地 REST API 上,文件不上传云端。

正文 · AI 翻译

为你的 AI 智能体——也为你——打造的 PDF 工具。纯 Rust。本地运行。文件永不离开你的机器。

PaperPilot demo

在浏览器中试用 → · 下载 · 路线图

PaperPilot 是一个用 Rust 编写的 PDF 与文档工具包。同一个引擎可以运行于:

形态 适用场景
MCP 服务器 让 Claude Desktop、Cursor 或任何 MCP 客户端具备合并、拆分、OCR 和压缩 PDF 的能力
CLI 批处理与脚本化工作流
浏览器(WASM) 零安装工具;文件在浏览器内存中处理,不会上传任何内容
桌面应用 Tauri + Svelte 图形界面,带查看器、标注和差异对比
本地 REST API 在 localhost:7823 上从 Python、Node 或 n8n 调用

无需 Chromium,无需 C++ 运行时,无云端调用。


快速开始

1. 配合 Claude / Cursor 使用(MCP)

从 Releases 下载 paperpilot-mcp,然后将其添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "paperpilot": {
      "command": "/path/to/paperpilot-mcp"
    }
  }
}

重启 Claude 并尝试:“合并这两个 PDF 并压缩结果。”

2. 使用 CLI

# Merge
paperpilot merge --inputs doc1.pdf doc2.pdf --output merged.pdf

# Compress
paperpilot compress --input in.pdf --quality 75 --output compressed.pdf

# Rotate pages 1, 3–5 by 90°
paperpilot rotate --input in.pdf --pages 1,3-5 --angle 90 --output out.pdf

3. 在浏览器中使用

访问 usepaperpilot.com。操作时打开浏览器的 Network 标签页——你会看到没有任何文件上传。

4. 从源码构建

git clone https://github.com/KrushnaVardhanReddy/PaperPilot.git
cd PaperPilot
cargo build --release -p paperpilot-cli -p paperpilot-mcp -p paperpilot-gateway

桌面应用:

cd apps/desktop && pnpm install && pnpm tauri dev

需要 Rust 1.75+、Node.js 和 pnpm。


目前可用的功能(v0.6)

整理:合并、拆分、旋转、删除页面、重排页面、提取页面、小册子拼版、N-up 网格 优化:压缩 提取:纯文本、OCR(通过 rten 的纯 Rust PaddleOCR) 安全:水印、验证签名、移除签名、PII 扫描、深度净化 Office 数据:Excel → JSON、Excel → CSV

即将推出(见 ROADMAP.md):

  • v0.7:PDF ↔ Markdown / HTML / JSON
  • v0.8:PDF → Word / Excel / PowerPoint
  • v0.9:加密、解密、签名、涂黑、表单、注释
  • v1.0:渲染、扁平化、修复、比较、PDF/A、Bates 编号

为什么还要另一个 PDF 工具?

  • 默认私密。一切都在本地或你的浏览器标签页中运行。
  • 为智能体而生。MCP 支持是一等公民,而非事后补充。
  • 一个引擎,多种形态。CLI、MCP、REST、WASM 和桌面端共享同一个 Rust 核心,因此行为一致。
  • 小巧且依赖少。纯 Rust,构建于 lopdf、pdf_oxide、rten 等之上。

基准测试

运行 cargo bench --workspace 即可复现。方法与结果:SYSTEM_BENCHMARK_REPORT.md。


架构

Desktop (Tauri) · CLI · REST (Axum) · MCP (stdio) · WASM (browser / edge)
                              │
                       Rust core workspace
   paperpilot-core · paperpilot-pdf · paperpilot-nlp · paperpilot-gateway
   paperpilot-mcp · paperpilot-wasm · paperpilot-storage

嵌入到你自己的网站

<script src="https://cdn.usepaperpilot.com/embed.js" data-tools="merge,compress,ocr"></script>
<div id="paperpilot-widget"></div>

本地 REST API

paperpilot serve --port 7823
curl -X POST http://localhost:7823/api/v1/pdf/merge \
  -H "Content-Type: application/json" \
  -d '{"inputs": ["a.pdf", "b.pdf"], "output": "out.pdf"}'

Swagger 文档位于 http://localhost:7823/docs。


贡献

欢迎提交 Issue 和 PR。适合首次贡献的内容:附带示例 PDF 的缺陷报告、新工具需求以及文档修正。

许可证

社区版(本仓库):Apache 2.0。包含 CLI、MCP 服务器、REST 网关、WASM 引擎和桌面应用。

企业版(SSO、RBAC、审计日志、DLP)单独开发。

来源:Hacker News · github.com