Skip to main content

celers_canvas/
lib.rs

1//! Canvas workflow primitives
2//!
3//! This crate provides distributed workflow patterns for task orchestration.
4//!
5//! # Workflow Primitives
6//!
7//! - **Chain**: Execute tasks sequentially, passing results as arguments
8//! - **Group**: Execute tasks in parallel
9//! - **Chord**: Execute tasks in parallel, then run callback with all results
10//! - **Map**: Apply a task to multiple argument sets in parallel
11//!
12//! # Example
13//!
14//! ```ignore
15//! // Chain: task1 -> task2 -> task3
16//! let workflow = Chain::new()
17//!     .then("task1", args1)
18//!     .then("task2", args2)
19//!     .then("task3", args3);
20//!
21//! // Chord: (task1 | task2 | task3) -> callback
22//! let workflow = Chord::new()
23//!     .add("task1", args1)
24//!     .add("task2", args2)
25//!     .add("task3", args3)
26//!     .callback("aggregate_results", callback_args);
27//! ```
28
29mod error;
30pub use error::*;
31
32mod signature;
33pub use signature::*;
34
35mod chain;
36pub use chain::*;
37
38mod group;
39pub use group::*;
40
41mod chord;
42pub use chord::*;
43
44mod conditional;
45pub use conditional::*;
46
47mod canvas_element;
48pub use canvas_element::*;
49
50mod error_handling;
51pub use error_handling::*;
52
53mod dag_export;
54pub use dag_export::*;
55
56mod result_types;
57pub use result_types::*;
58
59mod advanced;
60pub use advanced::*;
61
62mod checkpoint;
63pub use checkpoint::*;
64
65mod compiler;
66pub use compiler::*;
67
68mod dependency;
69pub use dependency::*;
70
71mod events;
72pub use events::*;
73
74mod scheduling;
75pub use scheduling::*;
76
77mod streaming;
78pub use streaming::*;
79
80mod monitoring;
81pub use monitoring::*;
82
83mod visualization;
84pub use visualization::*;
85
86mod runtime;
87pub use runtime::*;
88
89#[cfg(test)]
90mod tests_basic;
91
92#[cfg(test)]
93mod tests_advanced;