Dagger is a Rust library for bounded workflow execution.
This repository has one Cargo package: dagger-workflow-core. This package is the canonical Dagger engine.
The engine provides these parts:
- Strict JSON and YAML workflow definitions.
- Immutable workflow revisions.
- Action, Map, Choice, Approval, Succeed, and Fail nodes.
- Tenant and namespace isolation.
- Run budgets and fixed run limits.
- Durable attempts, retries, approvals, events, and recovery.
- In-memory stores for tests and local process use.
- SQLite control state with the
sqlitefeature. - In-memory or local file-system object storage.
You need Rust 1.82 or later.
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
cargo test --doc --workspace --all-features
cargo doc --workspace --all-features --no-depscargo run -p dagger-workflow-core --example yaml_pipeline
cargo run -p dagger-workflow-core --example guardrails
cargo run -p dagger-workflow-core --example multi_tenant
cargo run -p dagger-workflow-core --features sqlite --example durable_demoStart with the system overview.
- Getting started gives build and example commands.
- Workflow engine explains execution.
- Workflow definitions explains the input format.
- Storage and durability explains the stores.
- Operations and limits lists host duties and hard limits.
- Testing and development lists the required checks.
This repository uses Tusker for tasks, proof, gates, and project knowledge. Automation is off unless a human enables it.
tusker list
tusker show <TASK-ID> --capsule
tusker validate --vault ./.tusker --json