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