Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Try without installing

The browser demo runs the real simulation engines, compiled to WebAssembly. Drop an EPANET or SWMM .inp file, or pick a bundled example, and read the same report the CLI prints, produced by the same engine code. Models are read, solved and reported in your own tab; nothing is uploaded anywhere.

Each library release attaches a single-file version, hydra-try-<version>.html, pinned to that release’s engines: one HTML file that runs the same engines offline, straight from a Downloads folder, with no server and no install.

The demo runs models; it does not edit them, draw them, or read large result files. For those, install the desktop app below.

GUI: Desktop Application

Download the installer for your platform from the releases page:

PlatformInstaller type
macOS (Apple Silicon).dmg disk image, or portable .app.tar.gz
Windows.msi or .exe installer
Linux.AppImage, .deb, or .rpm package

After installing, see Troubleshooting if macOS blocks the app from opening.

CLI: Command Line

For most users, Cargo install is the recommended path.

Option 1: Install with Cargo (recommended)

cargo install hydra-cli

Requires Rust ≥ 1.95 (install via rustup.rs).

After installing, verify with:

hydra -V

Option 2: Pre-built binary (no Rust required)

Download the hydra binary for your platform from the releases page and place it somewhere on your PATH.

macOS: Pre-built CLI binaries are currently not notarised. If Gatekeeper blocks the binary, remove the quarantine flag:

xattr -d com.apple.quarantine hydra

Building from Source

If you want to build Hydra yourself (e.g. to contribute or run the test suite):

Prerequisites

git clone https://github.com/neeraip/hydra
cd hydra
just setup          # optional: install Cargo deps, frontend deps, and CLI tools (needs pnpm)
just build          # debug build
just release        # optimised release build (fat LTO, embeds the GUI frontend — needs Node/pnpm)
just test           # run the full test suite