This is the fastest way to go from nothing to a generated .docx and .pdf.
1. Install RusDox
macOS and Linux:
curl -fsSL https://raw.githubusercontent.com/OthmaneBlial/rusdox/main/scripts/install.sh | sh
Windows PowerShell:
irm https://raw.githubusercontent.com/OthmaneBlial/rusdox/main/scripts/install.ps1 | iex
The installer adds the rusdox binary and creates ~/rusdox/config.toml if it does not exist yet.
It does not clone the full GitHub repository.
2. Create a document file
mkdir my-rusdox-docs
cd my-rusdox-docs
rusdox init-doc mydoc.yaml
That creates a starter YAML document.
3. Edit the YAML
Example:
version: 1
output_name: client-brief
blocks:
- type: title
text: Client Brief
- type: subtitle
text: Q2 rollout
- type: section
text: Summary
- type: body
text: Launch is approved pending final security FAQ wording.
- type: bullets
items:
- Pricing is approved.
- Support macros are in review.
- Commercial release is planned for April 7.
Think of blocks: as the document itself, top to bottom.
4. Render the files
rusdox mydoc.yaml
By default you get:
generated/client-brief.docxrendered/client-brief.pdf
If your YAML does not set output_name, RusDox uses the file name.
5. Change the style
The easiest way is the config wizard:
rusdox config wizard --level basic
For more control:
rusdox config wizard --level advanced
If you want settings only for the current project:
rusdox config wizard --path ./rusdox.toml --level basic
6. Render a whole folder
If a folder contains YAML specs, RusDox can render all of them:
rusdox examples
7. Validate before you render in CI
rusdox validate mydoc.yaml
That catches semantic issues such as invalid colors, table shape mismatches, missing assets, or unknown named styles before output is written.
8. Watch while you edit
rusdox watch mydoc.yaml
RusDox rebuilds when the spec or active config changes.
9. Measure the pipeline
rusdox bench mydoc.yaml --iterations 5 --warmup 1
This reports parse, validation, compose, DOCX, PDF, and total timings from the CLI.
What Happens Behind The Scenes
When you run rusdox mydoc.yaml, RusDox:
- Reads the YAML document spec
- Applies your config
- Builds a DOCX document in pure Rust
- Writes a PDF preview in pure Rust
No Microsoft Word is required.
No LibreOffice is required.