技术笔记
reader.me 如何工作
你打开的每个 PDF 都不会离开你的机器。本页解释这在架构上如何可能,以及如何在 30 秒内自己验证。
简短版本
现代浏览器搭载了几乎完整的运行时:JIT JavaScript 引擎、WebAssembly、2D 画布、加密、文件 API 和持久存储。足以完成桌面 PDF 编辑器的一切操作 — 而无需将文件发送到任何地方。
reader.me 是大约 4 MB 的 JavaScript 和 WebAssembly,将四个开源库粘合成你看到的 20 个工具。
当你拖入 PDF 时发生什么
- 浏览器将文件直接交给 JavaScript。
- 我们将字节读入 typed array。
- 正确的库完成工作: pdf-lib、PDF.js、Tesseract.js、Comlink Workers (>20 MB)。
- 结果成为下载。
为什么这是结构性隐私
大多数云服务的「无上传」主张意味着更弱的东西:服务器在几小时后丢弃你的文件。文件确实到达了他们的服务器。
在 reader.me 没有要丢弃的「之后」,因为一开始就没有上传。
那分析呢?
我们加载 Google Analytics(延迟)和 Cloudflare Web Analytics。两者都看不到你的 PDF — 只触发包含 URL 路径、语言区域和标准用户代理的页面浏览信标。
机器人明确允许(GPTBot、ClaudeBot 等) — 没有文档数据可抓取。
在 30 秒内自己验证
- 打开 DevTools(Windows 上
F12,macOS 上⌥⌘I)→ Network 标签。 - 清除请求列表,勾选「preserve log」。
- 将 PDF 拖到 Compress 工具上并点击。
- 观察 Network 面板。没有任何携带你文件的请求。下载以
blob:URL 形式到达。
我们接受的取舍
在浏览器中完成一切并非免费。诚实的限制清单:
- 文件大小上限 网页上每文件 50 MB。
- 无合格电子签名(阶段 4)。
- OCR 语言数据较大(首次运行 ~12 MB)。
- PDF/A 失去可选文本。
相关
- 安全模型 → — 威胁模型、加密、CVE 政策。
- 隐私 → — 政策版本,使用通俗语言。
- vs iLovePDF / Smallpdf → — 并排架构对比。
reader.me 是以下人士的创意: David Carrero ,在 Color Vivo Internet S.L. 构建。