19 releases
new 0.1.18 | Nov 5, 2024 |
---|---|
0.1.17 | Oct 15, 2024 |
0.1.14 | Sep 29, 2024 |
#2364 in Parser implementations
584 downloads per month
Used in ooxmlsdk
180KB
5K
SLoC
Open XML SDK for Rust
Open XML SDK for Rust (ooxmlsdk) is a Rust library for working with Office Word, Excel, and PowerPoint documents. The basic idea is inspired by .NET Open XML SDK.
Features
- Deserialize/serialize OOXML for Rust structs
- Namespace support
- Read & Write
docx
,xlsx
andpptx
file - All Rust structs and ser/de code are generated from metadata (
crates/ooxmlsdk/data
) - Documentation for Rust structs
What's missing
- No validation (WIP)
- No Particle: all xml children is in a flattern
children
vector of enum (OneSequence
is supported, xml children are represented as struct's fields)
Project Structure
crates/ooxmlsdk
: generated code for deserialize & serialize OOXMLcrates/ooxmlsdk-build
: generate code for deserialize & serialize OOXMLexamples/*
: examples
Known Issues
- This library raise recursion limit by
#![recursion_limit = "768"]
forcargo doc
, you may need to add it too, be cautious when use. - Currently no
serde
support: intial benches showserde
slower than current custom implemention;serde
somehow not good at working with xml, you need a lot of special rename for xml attribute or children.
License
MIT OR Apache-2.0
crates/ooxmlsdk/data
is directly copied from .NET Open XML SDK so this directory is licensed under this license
Dependencies
~9MB
~159K SLoC