Installation
This page covers the quickest way to get Murali running and the optional tools that improve the experience.
Prerequisites​
You should have:
- Rust 1.85 or newer
cargo- a working graphics environment for preview mode
If you do not have Rust yet, install it from the official site:
Optional but useful:
ffmpegfor MP4 and GIF assembly during exportlatexanddvisvgmif you want LaTeX text rendering
Typst does not require a separate system install in the default setup.
Add Murali To A Project​
Install Murali from crates.io:
[dependencies]
murali = "0.2.4"
anyhow = "1"
glam = "0.33"
If you specifically want the latest unreleased changes, you can still depend on GitHub instead:
[dependencies]
murali = { git = "https://github.com/murali-engine/murali" }
anyhow = "1"
glam = "0.33"
If you want a quick scratch project:
cargo new --bin my_scene
cd my_scene
mkdir -p examples
Then add the dependency snippet above to Cargo.toml.
Important packaging note:
- the published crate excludes
examples/** - the reference examples are available in the GitHub repository
- the crates.io package gives you the library surface, not the full example catalog
Feature-Gated APIs​
Some APIs are available only when a Cargo feature is enabled. The current linear-algebra visual
toolkit is experimental and requires the experimental feature:
[dependencies]
murali = { version = "0.2.4", features = ["experimental"] }
anyhow = "1"
glam = "0.33"
Repository examples that use murali::frontend::collection::maths::linear_algebra should be run
with the same feature:
cargo run --features experimental --example linear_algebra_vectors
See Experimental Features for the current feature-gated APIs.
Python Package​
The Python engine package is named murali-engine and is imported as murali_engine.
Before the first PyPI release, install it from a local engine checkout:
python3 -m venv .venv
.venv/bin/python -m pip install maturin
.venv/bin/maturin develop --features python
.venv/bin/python python/examples/hello_shapes.py
After PyPI publish, users should install it directly:
python3 -m pip install murali-engine
The companion murali-kit package depends on murali-engine and contains broader Python examples
and add-on experiments. Installing murali-engine gives you the engine, not the kit.
Preview Vs Export Dependencies​
Preview mode:
- needs a working graphics environment
- does not require
ffmpeg
Export mode:
- can always render PNG frames
- uses
ffmpegwhen assembling video or GIF output
If ffmpeg is missing, Murali still exports frames and tells you where they were written.
Project Config​
Murali looks for a nearby murali.toml next to a Cargo.toml. A minimal config looks like this:
[preview]
fps = 60
[export]
fps = 60
width = 1920
width is the literal output width. Murali derives height from the scene's landscape, portrait, or square video format.
The repo includes a sample file at murali.toml.example in the repository root.
First Run​
Once your dependency is added, the fastest next step is:
- read Your First Scene
- create
examples/my_scene.rs - run it in preview mode from your own project:
cargo run --example my_scene --release -- --preview
LaTeX Support​
LaTeX text rendering requires system tools:
latexdvisvgm
If you do not want to install them yet, use Typst or Label first.