| Crates.io | ironflow |
| lib.rs | ironflow |
| version | 0.2.0-alpha.1 |
| created_at | 2026-01-15 19:09:15.464312+00 |
| updated_at | 2026-01-15 23:46:19.671795+00 |
| description | Event-sourced workflow engine for durable, long-running processes |
| homepage | https://github.com/sparkmill/ironflow |
| repository | https://github.com/sparkmill/ironflow |
| max_upload_size | |
| id | 2046333 |
| size | 383,900 |
ironflow is the runtime crate that powers the Ironflow workflow engine.
It exposes the core workflow state machine, Postgres-backed persistence, outbox processing,
and timers, and it integrates with the ironflow-macros helpers such as HasWorkflowId.
NB: Ironflow is in active development and testing. Expect breaking changes, bugs, and potential concurrency or data issues in the current release and between releases; use in production only with caution.
sqlx, tokio, and serde to keep the runtime lean when the database integration is not needed.Follow the workspace-level README.md to configure your environment, start Postgres, and run SQLx migrations.
Add the crate and the postgres feature to your workspace:
[dependencies]
ironflow = { version = "0.1", features = ["postgres"] }
Import the runtime pieces you need:
use ironflow::{Decider, Workflow, WorkflowId};
If you build without a database, set SQLX_OFFLINE=true and rely on the shipped .sqlx/ metadata
(generated via cargo sqlx prepare).
The database schema lives under migrations/20251230000001_create_ironflow_schema.sql.
Downstream consumers should apply the migrations for their desired version before running the runtime
(for example, cargo sqlx migrate run --source crates/ironflow/migrations from the repository root).
See tests/postgres/README.md for the integration suites that exercise the runtime against Postgres.