변경 로그
Office Oxide는 semver를 따릅니다. 1.0 이전에는 마이너 버전에 호환성 깨짐이 포함될 수 있으며 — 그런 경우 항상 여기에 명시합니다.
0.1.0 — 최초 릴리스
첫 공개 릴리스. 여섯 형식, 여섯 바인딩.
하이라이트
- 여섯 형식: DOCX, XLSX, PPTX, 그리고 레거시 DOC, XLS, PPT — 순수 Rust 코어, JVM 없음, 외부 바이너리 없음.
- 여섯 바인딩: 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 파이프라인을 위해 설계. - 투명한 레거시 → OOXML 변환을 위한
save_as(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 문서에서 실패 0건
배포
- crates.io:
office_oxide,office_oxide_cli,office_oxide_mcp - PyPI:
office-oxide— Linux, macOS, Windows × Python 3.8–3.14용 wheel - 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 releases 페이지를 참고하세요.