Changelog
Office Oxide segue semver. Antes da 1.0, versões minor podem trazer breaking changes — eles serão sempre destacados aqui.
0.1.0 — primeira release
Primeira release pública. Seis formatos, seis bindings.
Destaques
- Seis formatos: DOCX, XLSX, PPTX, mais os legados DOC, XLS, PPT — núcleo em Rust puro, sem JVM, sem binários externos.
- Seis bindings: Rust, Python, Node.js (nativo via koffi), Node.js / browser (WASM), Go (cgo), C# / .NET (P/Invoke), C FFI.
- API
Documentunificada entre formatos e bindings — detecção por extensão, sniffing por magic bytes, mesmos nomes de métodos em todo lugar. EditableDocumentcomreplace_text(DOCX, PPTX) eset_cell(XLSX) — preserva todas as partes OPC inalteradas ao salvar.to_markdown/to_html/to_irem todos os formatos — projetados para pipelines de LLM e RAG.save_aspara conversão legado → OOXML transparente (DOC → DOCX, XLS → XLSX, PPT → PPTX).- CLI (
office-oxide) e servidor MCP (office-oxide-mcp) — mesmo motor, runtimes diferentes.
Performance
Benchmarkado em 6.062 arquivos reais:
- DOCX: 0,8 ms média, 14× mais rápido que python-docx
- XLSX: 5,0 ms média, 2,8× mais rápido que python-calamine, 18× mais rápido que openpyxl
- PPTX: 0,7 ms média, 46× mais rápido que python-pptx
- DOC: 0,3 ms média, 14× mais rápido que catdoc
- XLS: 2,8 ms média, 13× mais rápido que xlrd
- PPT: 0,7 ms média, 4× mais rápido que catppt
- Taxa de sucesso total: 98,4% em 6.062 arquivos; zero falhas em documentos Office legítimos
Distribuição
- crates.io:
office_oxide,office_oxide_cli,office_oxide_mcp - PyPI:
office-oxide— wheels para Linux, macOS, Windows × Python 3.8–3.14 - npm:
office-oxide(nativo),office-oxide-wasm - NuGet:
OfficeOxide - pkg.go.dev:
github.com/yfedoseev/office_oxide/go
Licenciamento
Dual-licenciado MIT OR Apache-2.0, à sua escolha. Sem AGPL, sem GPL, sem restrições copyleft. Use livremente em projetos comerciais e open source.
Para detalhes completos, veja a página de releases do GitHub.