Expand description
Orka: An ASYNC pluggable, type-safe workflow engine for Rust.
Orka allows you to define complex, multi-step processes (pipelines) with features like:
- Named steps with before/on/after hooks.
- Asynchronous handlers for I/O-bound operations.
- Early stopping or continuing of pipeline execution.
- Dynamic step mutation (inserting, removing steps).
- Per-step extractors for operating on sub-contexts.
- Conditional execution of scoped pipelines, allowing dynamic workflow branching.
- A type-keyed registry for managing and running different pipelines.
- Out-of-band cancellation that winds a run down through its normal exit.
Re-exports§
pub use crate::core::cancel::CancelToken;pub use crate::core::cancel::Cancelled;pub use crate::core::control::PipelineControl;pub use crate::core::control::PipelineResult;pub use crate::core::step::SkipCondition;pub use crate::core::step::StepDef;pub use crate::core::context::AnyContextDataExtractor;pub use crate::core::context::ContextDataExtractorImpl;pub use crate::core::context::FinishHandler;pub use crate::core::context::Handler;pub use crate::core::context_data::ContextData;pub use crate::core::resources::RunResources;pub use crate::core::trace::CompositeObserver;pub use crate::core::trace::HandlerOutcome;pub use crate::core::trace::PipelineObserver;pub use crate::core::trace::RunOutcome;pub use crate::core::trace::RunTrace;pub use crate::core::trace::SkipReason;pub use crate::core::trace::StepPhase;pub use crate::core::trace::TraceCollector;pub use crate::core::trace::TraceEvent;pub use crate::core::trace::TraceEventKind;pub use crate::pipeline::definition::Pipeline;pub use crate::pipeline::execution::PlannedAction;pub use crate::pipeline::execution::StepPlan;pub use crate::pipeline::runner::PipelineRunner;pub use crate::conditional::builder::ConditionalScopeBuilder;pub use crate::conditional::builder::ConditionalScopeConfigurator;pub use crate::conditional::provider::DynPipelineProvider;pub use crate::conditional::provider::FunctionalPipelineProvider;pub use crate::conditional::provider::PipelineProvider;pub use crate::conditional::provider::StaticPipelineProvider;pub use crate::fanout::spawner::SpawnHandle;pub use crate::fanout::spawner::SpawnedTask;pub use crate::fanout::spawner::TaskSpawner;pub use crate::fanout::FanOut;pub use crate::fanout::FanOutItem;pub use crate::fanout::FanOutItemOutcome;pub use crate::fanout::FanOutPolicy;pub use crate::fanout::FanOutResults;pub use crate::error::OrkaError;pub use crate::error::OrkaResult;pub use crate::registry::Orka;
Modules§
- conditional
- Enables conditional execution of scoped pipelines within a step of a main pipeline.
- core
- error
- fanout
- Fan-out: running one pipeline over every item of a runtime collection.
- pipeline
- Defines the
Pipeline<T>struct, its construction, modification, and execution logic. - prelude
- The common imports for building and running a pipeline.
- registry
- Defines the
Orka<E>struct, a type-keyed registry for managing and executing pipelines. Pipelines arecrate::pipeline::definition::Pipeline<TData, PipelineHandlerError>. The registry returns results with an application-level error typeE.