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