flowrlib/lib.rs
1#![deny(clippy::unwrap_used, clippy::expect_used)]
2//! `flowrlib` is the runtime library for flow execution. This can be used to produce a flow runner,
3//! such as the `flowr` command line runner.
4//!
5//! It is responsible for reading a flow's compiled `FlowManifest``flowcore::model::flow_manifest::FlowManifest`,
6//! loading the required libraries using `LibraryManifests``flowcore::model::lib_manifest::LibraryManifest`
7//! files and then coordinating the execution of [functions][flowcore::model::runtime_function::RuntimeFunction]
8//! by dispatching [Jobs][job::Job] (that include a reference to the function's
9//! [Implementations][flowcore::Implementation] and the input values required to run) then
10//! gathering the Result and passing the output value to other connected functions in the
11//! [flow graph][flowcore::model::flow_manifest::FlowManifest]
12
13/// Provides [Block][block::Block] that represents a block imposed on a function due to destination being busy
14pub mod block;
15
16/// Provides [Coordinator][coordinator::Coordinator] responsible for coordinating the execution of flows submitted to it
17pub mod coordinator;
18
19#[cfg(feature = "debugger")]
20/// Provides the `DebugCommand`[`debug_command::DebugCommand`] enum for commands from debug client to debug server
21pub mod debug_command;
22
23/// Provides [Dispatcher][dispatcher::Dispatcher] used by the [Coordinator][coordinator::Coordinator]
24/// to dispatch [Jobs][job::Job] for execution by an [Executor][executor::Executor]
25pub mod dispatcher;
26
27/// Holds all [Error][errors::Error] types, and other modules in this crate will `use errors::*;`
28/// to get access to everything `error_chain` creates.
29pub mod errors;
30
31/// Provides [Executor][executor::Executor] that receives jobs for execution, executes them and returns results
32pub mod executor;
33
34/// Provides methods to get information about this library
35pub mod info;
36
37/// Provides [Job][job::Job] that holds jobs before and after their execution
38pub mod job;
39
40/// The `SubmissionHandler`[`submission_handler::SubmissionHandler`] trait defines methods a client
41/// must implement in order to handle submissions from a client
42#[cfg(feature = "submission")]
43pub mod submission_handler;
44
45/// The `DebuggerHandler` `debugger_handler::DebuggerHandler` trait defines methods a a client must
46/// implement in order to handle the interaction between a client and the debugger (in the Coordinator)
47#[cfg(feature = "debugger")]
48pub mod debugger_handler;
49
50/// Provides [`RunState`][run_state::RunState] that tracks the current runtime state,
51/// used by [`Coordinator`][coordinator::Coordinator]
52pub mod run_state;
53
54/// Provides well-known service names used across multiple binary crates
55pub mod services;
56
57/// Optional mDNS-SD service discovery helpers
58pub mod discovery;
59
60#[cfg(feature = "debugger")]
61mod debugger;
62
63/// `wasmtime` module contains a number of implementations of the wasm execution
64mod wasm;
65
66#[cfg(debug_assertions)]
67mod checks;