By 小墨
2026年8月7日
14
454
anydoc:用一个 Rust 库搞定 14 种文档格式转 Markdown
在 AI 应用开发中,为大模型提供文档数据是一项看似简单却极其繁琐的工作。用户上传的文件格式五花八门:二十年前的 Word 合同、Excel 报表、PowerPoint 演示文稿、电子书,甚至 RTF 文本。这些格式在转换为 AI 可读的 Markdown 时,现有方案往往力不从心——每个库只能覆盖部分格式,想要全支持就得拼接四五个不同的依赖库,不仅增加复杂度,还会导致输出格式不统一、错误处理各异等问题。
性能表现:速度优势显著
Firecrawl 近期开源的 anydoc 库试图从根本上解决这一痛点。这是一个用 Rust 编写的文档转换工具,能够将 14 种文档格式统一转换为 GitHub Flavored Markdown(GFM)。支持范围涵盖 Word(doc、docx、docm)、PowerPoint(ppt、pps、pot、pptx、pptx、pptm、ppsx、ppsm)、Excel(xls、xlsx、xlsm、xlsb)、OpenDocument(odt、ods、odp)、RTF、EPUB、CSV 等 8 大类共 21 种文件扩展名。PDF 格式则由同一团队开发的 pdf-inspector 库专门处理。
架构设计:一次解析,共享模型
根据官方基准测试(100 份真实文档,覆盖全部 14 种格式),anydoc 的中位转换时间仅为 4.4ms,综合评分达到 81 分。对比主流方案:markitdown 覆盖 6 种格式、中位耗时 134.8ms,pandoc 覆盖 5 种格式、中位耗时 102.1ms,docling 覆盖 4 种格式、中位耗时 513.6ms。anydoc 的速度领先幅度达到 20-245 倍。实际测试中,单个 docx 文件转换仅需 0.78ms,500 个 docx 文件的进程内循环总耗时 0.056 秒,平均每个文件 0.11ms。
一个 Rust 库,14 种格式,一个输出格式。
“技术观察”安全防护:多层次保障稳定可靠
anydoc 的架构设计值得深入了解。其核心思路是“一次解析,共享模型”:每种格式使用独立的 parser 解析,但最终都映射到统一的 Document 数据模型(包含 blocks、inlines、tables、footnotes、assets 等组件),再由同一个 Markdown 序列化器输出。这种设计带来一个关键优势——修复一个问题,所有格式同时受益。例如,修复 docx 表格转义问题后,rtf、odt、epub 的表格处理也会自动改善。此外,格式检测基于文件内容而非扩展名,能够准确识别被错误命名的文件。代码规模约 1.7 万行,包含 58 个快照测试和针对每个 fixture 的变异测试,工程质量在早期开源项目中属于较高水平。
应用建议与局限性
对于需要在管线中处理多种格式用户文档的 AI 应用开发者,anydoc 提供了目前覆盖最全面、速度最快的现成方案。MIT 许可证允许自由使用,Node、Python、WASM 绑定齐全,可通过 npx skills add firecrawl/anydoc 集成到 Claude Code、Codex 等 AI Agent 中。不过需要客观看待其局限性:官方基准使用的文档集来自团队内部,缺乏第三方独立验证;PDF 路径在处理中文复杂版面(如多列表格、数据卡片)时质量不如 MinerU;当前版本为 0.1.7,发布仅一周已更新 7 个版本,API 稳定性有待观察。如果你的场景仅涉及 Word 文档,mammoth(95 分)可能比 anydoc(87 分)是更合适的选择。
如有侵权,请联系删除。
Related Articles
-
Fri Jul 24 2026原生工具调用、多模态Agent与开源模型:Foundation Model 2.0论坛直面Agent时代的模型演进
Foundation Model 2.0论坛聚焦在Agent时代模型的演进,讨论如何通过原生工具调用与多模态融合提升Agent的执行能力与适应性,并探讨端侧小模型的可行路径。
-
Mon Jul 06 2026示例域名与文档用途说明
example.com 是一个专门为文档示例而保留的顶级域名,供教程、示范和测试文档使用,不需要额外许可即可引用。
-
Mon Jul 06 2026未知文章标题
未提供文章内容或可抓取的 URL,因此无法提取实际引言或第一段。此处为占位文本,提示用户补充源内容以生成完整的 Frontmatter。
-
Sun Jul 05 2026未知来源文章
未提供可爬取的文章 URL 或内容,系统无法获取实际正文。此处为占位引言,说明输入数据缺失并提供元数据占位以便后续替换。
-
Sun Jul 05 2026无法生成:缺少文章源数据
未提供可用于爬取的文章 URL 或 JSON 数据,因此无法依据页面内容生成完整的 Frontmatter。请提供包含文章信息的 JSON 数组或一组有效 URL。
-
Sun Jul 05 2026未提供的文章标题
未提供文章内容。请提交文章的 URL 或粘贴全文,以便根据内容生成前言与分段信息。
-
Sat Jul 04 2026未提供文章链接或内容
未提供文章内容或链接,无法提取引言或第一段。请提交包含文章 URL 的 JSON 数组或直接提供文章文本。
-
Sat Jul 04 2026未提供文章信息
未收到文章内容或可爬取的 URL,因此无法生成文章段落。请提交包含文章 URL 的 JSON 数组,格式示例:[ {"url": "https://example.com/article1"}, {"
-
Sat Jul 04 2026未提供文章来源
未收到可用的文章内容或链接,因此无法提取段落。请提交包含多篇文章信息的 JSON 数组或每篇文章的 URL,以便爬取并生成完整的 postDetails 内容。
-
Fri Jul 03 2026示例文章标题(缺少来源)
未收到具体文章 URL 或内容,因此无法从原文中提取引言。此处为占位引言,说明系统需要源页面以抓取实际内容并生成结构化的 Astro Markdown YAML Frontmatter。
-
Thu Jul 02 2026聚焦自进化、Harness等Agent最火的九个方向,年度AI智能体大会7月开幕
中国AI智能体大会(AgenticAICon 2026)将于7月在杭州举办,围绕智能体领域的前沿技术展开,旨在推动研究与产业深度融合,探寻智能体从对话式工具向主动执行系统转型的路线图。
-
Wed Jul 01 2026探索 Astro.js 与 YAML:构建可维护的内容管理工作流
在现代静态站点与内容驱动的项目中,统一且可验证的元数据格式对内容维护和自动化发布至关重要。Astro.js 提供了灵活的内容渲染能力,而采用严格的 YAML Frontmatter 模板,可以让团队共
-
Tue Jun 30 2026首届光谷智能体经济大会举行 光谷从“AI试验场”迈向“AI价值场”
2026年6月29日,武汉东湖新技术开发区举办首届光谷智能体经济大会,正式发布“光谷智能体引力计划”。大会提出未来三年将在政策、算力、基金等方面投入超10亿元,旨在打造以智能体为核心的创新生态,培养智
-
Tue Jun 30 2026中国广电联合会《全国交通传媒行业AI应用调研报告》正式发布
中国广电联合会交通宣传委员会在内蒙古发布了《2026全国交通传媒行业AI应用调研报告》,基于对145家交通传媒机构的调查,总结了行业在AI应用上的现状与发展路径。
-
Tue Jun 30 2026韩国万亿'芯'基建拆解:存储行业能否建成AI时代'油田'
韩国近期公布了总投资逾1800万亿韩元的三大超级AI基建项目,涵盖半导体制造、先进封装与AI数据中心,目标是借助国家级投入与龙头企业布局,打造面向AI时代的关键产业能力。
-
Mon Jun 29 2026能量岛企业家俱乐部6.28 芯谷 AI 沙龙圆满落幕
6月28日,能量岛企业家俱乐部在苏州芯谷产业园举办AI智能体应用沙龙,活动以实战分享和产业交流为核心,吸引了本地创业者、企业高管与科研人员参与。
-
Mon Jun 29 20262026.06.20:AI 泡沫退潮,Agent 与数据架构重构产业底层
InfoQ 的周度深度分析指出,生成式 AI 已走完狂热期,行业正进入理性调整阶段,专家纷纷回归技术和落地路径的讨论。
-
Mon Jun 29 2026OKF——要做AI时代的'知识图谱通用语'—继MCP之后,Google又扔出一张Agent王牌
2026年6月,谷歌云发布了Open Knowledge Format(OKF)v0.1,这是一套以带YAML前置元数据的Markdown文件夹为单位来表示知识的开放规范,旨在解决企业知识分散的问题。
