libreoffice-rs
Pure-Rust, std-only library and CLI for reading, writing, converting, and rendering office documents — DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG, ODF, ODB, PDF, HTML, SVG, Markdown, CSV, and plain text — with no C/C++ shims, no FFI, no LibreOffice install, and zero non-std dependencies.
Quick start
# Convert DOCX to PDF — no soffice, no Java, no system deps
# Spreadsheet to CSV
# Markdown to DOCX
# Extract text as Markdown
# Render pages as images
The --headless --convert-to interface mirrors soffice — drop it into existing scripts as a faster, dependency-free replacement.
Library API
use ;
let docx = read.unwrap;
let pdf = convert_bytes.unwrap;
write.unwrap;
Per-domain crates (lo_writer, lo_calc, lo_impress, lo_draw, lo_math, lo_base) give fine-grained control over document creation and export.
Performance
10–187× faster than real LibreOffice across the full N×M conversion matrix (mean ~116× across 63 head-to-head format pairs). See the full README for benchmark details.
Status
This is not feature-parity with LibreOffice. It provides a coherent Rust architecture and meaningful real functionality, but does not fully replace LibreOffice. See STATUS.md for the candid feature matrix.
License
MIT