Hydra is a water distribution network simulator written in Rust. It performs extended-period simulation (EPS) of hydraulic behaviour and water quality dynamics across pressurised pipe networks, computing the full time history of flows, pressures, and constituent concentrations at every node and link.
Inputs are EPANET 2.3 .inp files (local or via HTTP URL). Outputs are an EPANET-compatible binary .out file and a plain-text or JSON .rpt report.
- Hydraulics — GGA solver, Hazen-Williams / Darcy-Weisbach / Chezy-Manning head loss, DDA and PDA demand models, pumps, all EPANET valve types, FAVAD leakage, rule-based controls
- Water quality — chemical constituent, water age, source tracing; Lagrangian transport; bulk and wall reactions; all EPANET tank mixing models
- I/O — all 11 EPANET flow unit systems;
.outbinary,.rpttext,.jsonreport output - Interfaces — desktop GUI (Windows, macOS, Linux) and a
hydraCLI binary
Download the installer for your platform from the releases page.
macOS — "Hydra is damaged and can't be opened"
The app is not yet code-signed. macOS Gatekeeper blocks unsigned apps downloaded from the internet. To open it, run the following in Terminal after installing:
xattr -cr /Applications/Hydra.appThen try opening the app again. See the GUI documentation for a full usage guide.
Pre-built binary (no Rust required) — download from the releases page.
Cargo:
cargo install hydra-cliBasic usage:
hydra network.inp # report to stdout
hydra network.inp report.rpt output.out # write report + binary output
hydra https://example.com/network.inp --report report.json # HTTP input, JSON reportSee crates/cli/README.md for the full option reference.
[dependencies]
hydra-sdk = "1"use hydra_sdk::{io, Simulation, NodeQuantity};
let network = io::parse(&std::fs::read("network.inp")?)?;
let mut sim = Simulation::create();
sim.load(network)?;
sim.run()?;See the SDK documentation for a full usage guide.
Prerequisites: Rust ≥ 1.95, just.
GUI only: Node.js 22, pnpm 10, Tauri CLI.
git clone https://github.com/neeraip/hydra.git
cd hydra
just build
just testSee CONTRIBUTING.md for the full development setup.
| Getting Started | Installation, build, CLI, GUI |
| SDK | Library usage and examples |
| Architecture | Crate layout and specifications |
| Reference | INP format, performance, EPANET migration |
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request, in particular the Spec First workflow, which requires spec changes to land before implementation changes for any solver, model, or analytics work.
AGPL v3: free to use and modify. Commercial products built on Hydra must either release their source under AGPL v3 or obtain a separate commercial license. See COMMERCIAL_LICENSE.md for details.