Skip to content

Command-line runner

runswmmrs executes one SWMM input file through the complete native Rust lifecycle and writes a text report and binary output file.

Warning

The solver is pre-release. Compare critical results against a trusted EPA SWMM baseline before relying on it.

Solver source access

The native solver source is private. Access starts with a conversation about contributing; read the governance and contribution model.

Install

curl -LsSf https://raw.githubusercontent.com/swmm-rs/swmmrs/main/scripts/install.sh | sh
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/swmm-rs/swmmrs/main/scripts/install.ps1 | iex"

See the installation guide for additional installation options.

Run a model

runswmmrs model.inp model.rpt model.out

The three paths are required and positional:

  1. EPA SWMM input file
  2. text report destination
  3. binary output destination

The runner opens and validates the input, starts routing with saved results, advances to completion, ends the run, writes the detailed report, and closes all files.

Help and version

runswmmrs --help
runswmmrs --version

The version command reports the embedded SWMM engine version rather than the Cargo package or GitHub release version.

Exit behavior

Exit code Meaning
0 Simulation completed, or help/version output completed.
1 Arguments were invalid or a solver lifecycle operation failed.

Solver failures are written to standard error as error: <diagnostic>. The runner preserves the first lifecycle error when cleanup also fails.

Output ownership

Use distinct output paths for concurrent or repeated jobs. A successful run writes the detailed .rpt report and retained .out binary artifact requested on the command line.

The CLI produces but does not query the completed .out file. Use the Python OutputReader for validated post-run extraction, or use the Python bindings to collect Live Views, snapshots, and statistics while routing.