Changelog
Office Oxide следует semver. До 1.0 минорные версии могут содержать ломающие изменения — мы всегда указываем такие здесь.
0.1.0 — первый релиз
Первый публичный релиз. Шесть форматов, шесть привязок.
Главное
- Шесть форматов: DOCX, XLSX, PPTX плюс legacy DOC, XLS, PPT — чисто-Rust ядро, никаких JVM, никаких внешних бинарей.
- Шесть привязок: Rust, Python, Node.js (нативная через koffi), Node.js / браузер (WASM), Go (cgo), C# / .NET (P/Invoke), C FFI.
- Единое API
Documentчерез форматы и привязки — определение по расширению, проверка magic-байтами, одни и те же имена методов везде. EditableDocumentсreplace_text(DOCX, PPTX) иset_cell(XLSX) — сохраняет все нетронутые OPC-части на сохранении.to_markdown/to_html/to_irдля каждого формата — спроектированы для LLM- и RAG-пайплайнов.save_asдля прозрачной legacy → OOXML конвертации (DOC → DOCX, XLS → XLSX, PPT → PPTX).- CLI (
office-oxide) и MCP-сервер (office-oxide-mcp) — тот же движок, разные рантаймы.
Производительность
Бенчмарк на 6 062 реальных файлах:
- DOCX: 0,8 мс среднее, в 14 раз быстрее python-docx
- XLSX: 5,0 мс среднее, в 2,8 раза быстрее python-calamine, в 18 раз быстрее openpyxl
- PPTX: 0,7 мс среднее, в 46 раз быстрее python-pptx
- DOC: 0,3 мс среднее, в 14 раз быстрее catdoc
- XLS: 2,8 мс среднее, в 13 раз быстрее xlrd
- PPT: 0,7 мс среднее, в 4 раза быстрее catppt
- Общий pass rate: 98,4% на 6 062 файлах; ноль провалов на легитимных Office-документах
Дистрибуция
- crates.io:
office_oxide,office_oxide_cli,office_oxide_mcp - PyPI:
office-oxide— wheels для Linux, macOS, Windows × 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-ограничений. Используйте свободно в коммерческих и open-source проектах.
Полные детали — на странице релизов GitHub.