变更日志
Office Oxide 遵循 semver。1.0 之前的次版本可能包含破坏性变更 — 我们始终在这里注明。
0.1.0 — 首发
首个公开版本。6 种格式、6 种绑定。
亮点
- 6 种格式: DOCX、XLSX、PPTX,加旧版 DOC、XLS、PPT — 纯 Rust 内核,无 JVM,无外部二进制。
- 6 种绑定: Rust、Python、Node.js(基于 koffi 的原生)、Node.js / 浏览器(WASM)、Go(cgo)、C# / .NET(P/Invoke)、C FFI。
- 跨格式与绑定的统一
DocumentAPI — 扩展名检测、魔术字节嗅探、所有地方相同的方法名。 EditableDocument提供replace_text(DOCX、PPTX)与set_cell(XLSX) — 保存时保留所有未修改的 OPC 部件。- 每种格式都有
to_markdown/to_html/to_ir— 为 LLM 与 RAG 管道设计。 save_as用于透明的旧版 → OOXML 转换(DOC → DOCX、XLS → XLSX、PPT → PPTX)。- CLI(
office-oxide)与 MCP 服务器(office-oxide-mcp)— 同一个引擎,不同的运行时。
性能
在 6,062 份真实文件上的基准:
- DOCX: 均值 0.8 ms,比 python-docx 快 14 倍
- XLSX: 均值 5.0 ms,比 python-calamine 快 2.8 倍,比 openpyxl 快 18 倍
- PPTX: 均值 0.7 ms,比 python-pptx 快 46 倍
- DOC: 均值 0.3 ms,比 catdoc 快 14 倍
- XLS: 均值 2.8 ms,比 xlrd 快 13 倍
- PPT: 均值 0.7 ms,比 catppt 快 4 倍
- 总通过率: 6,062 个文件 98.4%; 合法 Office 文档零失败
发布渠道
- crates.io:
office_oxide、office_oxide_cli、office_oxide_mcp - PyPI:
office-oxide— Linux、macOS、Windows 的 wheel × Python 3.8–3.14 - npm:
office-oxide(原生)、office-oxide-wasm - NuGet:
OfficeOxide - pkg.go.dev:
github.com/yfedoseev/office_oxide/go
许可证
按你选择 MIT OR Apache-2.0 双许可。无 AGPL、无 GPL、无 copyleft 限制。可自由用于商业与开源项目。
完整详情见 GitHub 发布页。