乐于分享
好东西不私藏

Firecrawl 又开源!14 种文档秒转 Markdown,暴涨 1 万 Star

Firecrawl 又开源!14 种文档秒转 Markdown,暴涨 1 万 Star

Firecrawl 刚刚开源了一个新项目——AnyDoc。

一个 Rust 写的文档解析引擎,14 种格式一键转 Markdown,中位数耗时 4.7 毫秒。

没有 API key,没有系统依赖,本地跑。

GitHub:https://github.com/firecrawl/anydoc

01 为什么值得写

做 AI 应用的都知道一个痛点:用户传什么格式的文件都有。

DOCX、PDF、PPTX、XLSX、EPUB、RTF……每个格式都要找对应的库,每个库的输出格式不一样,错误处理方式也不一样。最后项目里堆了四五个文档解析依赖,维护起来头疼。

AnyDoc 做的事就一句话:一个库,14 种格式,全部转 Markdown。

02 支持哪些格式

格式
说明
docx / doc / docm
Word 文档
xlsx / xls / xlsm
Excel 表格
pptx / ppt
PowerPoint 演示
rtf
富文本格式
odt / ods / odp
OpenDocument 格式
epub
电子书
csv
逗号分隔值
pdf
PDF(底层调用 pdf-inspector)

14 种格式,一个二进制。

而且它不只是转文本——表格、图片、格式都保留。不是扔给你一段纯文字,是保留结构的 Markdown。

03 快得离谱

基准测试数据:

指标
AnyDoc
对比工具
中位耗时
4.4ms
52ms ~ 1130ms(下一个最快工具的 10 倍以上)
500 个 DOCX 文件
1.7 秒
格式覆盖率
14/14
下一个最近的 LibreOffice 只覆盖 12/14
质量评分(Claude Sonnet 5 盲评)
81
次优 70

质量评估维度:完整性、结构、格式、清洁度。AnyDoc 在每个格式上都领先。

注意:基准测试的语料是 Firecrawl 自己的,每个工具的评分只计算它实际支持的格式。所以跨格式对比时,AnyDoc 的 81 分是 14 种格式的平均,其他工具只算自己支持的子集。但即使逐格式对比,AnyDoc 也全部领先。

04 怎么用

Rust:

let markdown = anydoc::to_markdown("contract.docx")?;

Node.js:

import { toMarkdown } from "@firecrawl/anydoc";const markdown = await toMarkdown("contract.docx");

Python:

import anydocmarkdown = anydoc.to_markdown("contract.docx")

CLI:

cargo install anydocanydoc contract.docx

就一行。没有 API key,没有配置文件,没有系统依赖。装完就能用。

05 Firecrawl 的文档解析战略

AnyDoc 不是 Firecrawl 第一个开源的文档工具。

半个月前他们刚开源了 pdf-inspector,专门处理 PDF——文本型 PDF 直接提取(150ms),扫描件才送 OCR。9.5K Star,之前我刚写过推文。

AnyDoc 和 pdf-inspector 是同一套思路的延续:

  • • 纯 Rust 编写
  • • 无外部依赖
  • • 本地运行,不依赖 API
  • • Markdown 输出
  • • 已经在 Firecrawl 的 /parse 和 /scrape 接口中实际使用

两个仓库分开维护,但共享同一条技术路线。PDF 用 pdf-inspector,其他 14 种格式用 AnyDoc。合在一起,覆盖了 AI 管线实际会遇到的绝大部分文档类型。

06 谁在用

Garry Tan(YC 总裁)在 X 上推荐了这个项目,称它是解决 AI 文档解析痛点的关键工具。

Firecrawl 官方也表示,AnyDoc 已经上线了他们的 /parse 和 /scrape 端点——也就是说,你现在用 Firecrawl 解析文档,底层跑的就是 AnyDoc。

写在最后

AI 应用开发里,文档解析是个又脏又累的活。每个格式找一个库,每个库维护一套逻辑,最后项目里堆了一堆依赖,还没一个能全覆盖的。

Firecrawl 这次开源的 AnyDoc,用一个 Rust 库解决了 14 种格式的解析问题,4.4ms 耗时,质量领先竞品,且已经在生产环境里跑了。

GitHub:https://github.com/firecrawl/anydoc