Corr is a Rust-based runtime and DSL for defining and executing automated API/system journeys, plus workload scenarios for load/performance style execution.
- Full documentation: https://qalens.com/site/corr
Based on the repository structure and examples, Corr provides:
- A
JourneyDSL (*.journey) to model executable flows. - A
WorkLoadDSL (*.workload) to orchestrate journey scenarios. - Built-in step support for:
- REST
- WebSocket client/server
- DB
- System
- Listener-style flows
- Template and extraction helpers for:
- JSON, object, text, and form data
- Runtime outputs to:
consoleinfluxdb2
Example (examples/src/WSClient.journey) shows WebSocket connect/send/listen behavior, while examples/src/Server.journey shows a broadcast-style WebSocket server journey.
corr/: CLI and runners (build/run) for journeys and workloads.corr-lib/: DSL parsers, core runtime, templates, and step implementations.playground/: integration playground crate.examples/: sample.journeyprograms.cfg/: environment-specific config files.
- Rust toolchain (Docker build uses
rustlang/rust:nightly). - Cargo.
cargo build --workspace# Run a journey from source (build + run)
cargo run -p corr -- run -t . <default>
# Run a workload from source
cargo run -p corr -- run -t . -w <default>Notes:
-w/--workloadswitches execution mode from journey to workload.-o/--outsupportsconsole(default) andinfluxdb2.-d/--debugenables debug mode.
Corr can package journeys/workloads and their dependencies:
# Build package artifact under ./build/*.jpack
cargo run -p corr -- build -t . <default>When jpack.toml exists at the target root, package.name is used for the generated artifact name.
The repository includes a multi-stage Dockerfile that builds corr in a Rust builder image and runs it in a slim Debian image.