Dinja
Safe, deterministic MDX rendering powered by a Rust core with batteries-included Python bindings.
Why dinja?
- Native performance – the renderer is written in Rust and avoids Node.js runtime costs.
- Identical output everywhere – both the Rust crate and the Python bindings call into the same engine.
- Zero setup – static JS dependencies are embedded and extracted on demand.
- Prebuilt binaries – PyPI ships wheels for Linux, macOS (x86/arm), and Windows (abi3-py313+).
Installation
| Target | Command |
|---|---|
| Python package | uv add dinja |
| Rust crate | cargo add dinja-core |
Usage
Rust
use ;
Python
=
=
=
=
=
rendered["output"] contains HTML, JavaScript, or schema code depending on settings["output"].
More examples live in python-bindings/examples/.
Development
| Dev Docs | Contents |
|---|---|
.dev-ops/DEVELOPMENT.md |
Repo layout, local workflows, release overview |
.dev-ops/RELEASE.md |
Full release playbook (bump variants, flags, troubleshooting) |
License
BSD 3-Clause. See LICENSE.