Skip to main content

graphrun/
lib.rs

1//! Embedded durable workflow engine for Rust.
2//!
3//! Open [`Engine::local`] on a directory in your process. YAML and
4//! [`workflow`] compile to one IR. This crate does not start a server.
5//!
6//! Register handlers with [`Engine::builder`]. Unregistered names fail.
7//! [`Engine::local`] enables sample fixture handlers.
8//!
9//! See the crate README, `examples/hello_world.rs`, and `examples/order.rs`.
10
11#![allow(clippy::too_many_arguments)]
12#![allow(clippy::collapsible_if)]
13
14pub mod binding;
15pub mod builder;
16pub mod catalog;
17pub mod client;
18pub mod cluster;
19pub mod compiler;
20pub mod domain;
21pub mod engine;
22pub mod error;
23pub mod flow;
24#[doc(hidden)]
25pub mod generated;
26pub mod handlers;
27pub mod ids;
28pub mod ir;
29pub mod limits;
30pub mod policy;
31pub mod provider;
32#[doc(hidden)]
33pub mod rpc;
34pub mod schema;
35#[doc(hidden)]
36pub mod storage;
37pub mod time;
38pub mod tls;
39pub mod value;
40#[doc(hidden)]
41pub mod write;
42pub mod yaml;
43
44pub use builder::{
45    ActivityRef, Branch, Case, EntryPort, ExitPort, InputMapping, NodeRef, Region, RegionBuilder,
46    RegionGraphBuilder, SignalRef, TerminalRef, TimedWaitRef, ValueRef, WorkflowBuilder,
47};
48pub use catalog::Catalog;
49pub use client::GrpcClient;
50pub use cluster::MemberConfig;
51pub use compiler::compile_yaml;
52pub use domain::{State, reconstruct, run_events, run_output};
53pub use engine::{
54    ControlRequest, ControlResponse, Engine, LedgerEntry, LocalBuilder, connect_control,
55    ledger_get, replay,
56};
57pub use error::{Error, ErrorKind, Result};
58pub use flow::{region, workflow};
59pub use handlers::Handlers;
60pub use ids::{EventId, RunId};
61pub use ir::Definition;
62pub use schema::{DurablePayload, SchemaRef};
63pub use tls::{CertificateAuthority, TlsMaterial, generate_ca, issue_node};
64pub use value::Value;