Skip to main content
Conseqa is distributed as source code and built with Cargo, the standard Rust build tool. You do not need Node.js or any other runtime to run the binaries — the conseqa-viz front end is a pre-built React bundle embedded directly in the binary at compile time.

Prerequisites

You need a stable Rust toolchain with Cargo. The recommended way to install one is via rustup:
Verify your installation:
Any recent stable release works. Conseqa’s Cargo.toml specifies edition = "2024", so use Rust 1.85 or later.

Build from source

Clone the repository and run a release build:
Cargo resolves and compiles all dependencies automatically. The build produces two binaries under target/release/:

Add to PATH

To invoke either tool from any directory without a full path, add the release directory to your PATH. Add this line to your shell profile (.bashrc, .zshrc, or equivalent):
Reload your shell or run source ~/.zshrc (adjust for your shell), then confirm the tools are available:

Verify the installation

Run each tool with --help to confirm it is reachable and working:
Run the included fixture to confirm end-to-end verification works:

A note on the visualization front end

conseqa-viz embeds a pre-built React + TypeScript bundle at compile time using Rust’s include_str! macro. The compiled binary is fully self-contained: it requires no Node.js, no npm, and no network access at runtime.
If you modify the front end source in viz/, you must rebuild the bundle and commit the result before the changes take effect in conseqa-viz. See the viz/ directory for build instructions (npm run build produces viz/dist/index.html, which the Rust build then embeds).
The production bundle is a single HTML file with every script and stylesheet inlined via vite-plugin-singlefile. When conseqa-viz generates output, it injects the page data — title, model, derived graph, and report — as window.CONSEQA into that bundle.

Troubleshooting

Upgrade your Rust toolchain. Conseqa requires Rust 1.85 or later, which introduced the 2024 edition.
Make sure you sourced your shell profile after editing it, and that the path you added points to the target/release directory inside the cloned repository — not to the repository root.
If the file is not there, the build may not have completed successfully. Re-run cargo build --release and check for errors.
conseqa and conseqa-viz resolve the model path relative to the working directory. Make sure you are in the right directory or provide an absolute path: