1 unstable release

0.1.0 Feb 15, 2020

#5 in #docx

MIT license

29K SLoC


A library to deserialize Open Office Xml files in Rust.

Latest version Documentation


oox-rs is a low level deserializer for Microsoft's OfficeOpen XML file formats. It's still WIP, so expect API breaking changes.

The Office Open XML file formats are described by the ECMA-376 standard. The types represented in this library are generated from the Transitional XML Schema's, which is described in ECMA-376 4th edition Part 4.

Documentation is generated from the "Ecma Office Open XML Part 1 - Fundamentals And Markup Language Reference.pdf" file, found in ECMA-376 4th edition Part 1


Oox-rs has no high level interface to access objects and their attributes in a page/slide yet. It only provides access to the elements in various xml files as in-memory objects. If you want to import a document into your application you should look up the documentations above. A high level interface is planned.

Load a docx file

use oox::docx::package::Package as DocxPackage;

let package = DocxPackage::from_file(&PathBuf::from("path/to/example/file.docx")).unwrap();
let main_document = package.main_document.as_ref().unwrap(); // Access the main document


~102K SLoC