Crate flowrlib

source ·
Expand description

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, loading the required libraries using LibraryManifests files and then coordinating the execution of functions by dispatching Jobs (that include a reference to the function’s Implementations and the input values required to run) then gathering the Result and passing the output value to other connected functions in the flow graph

Modules

  • Provides Block that represents a block imposed on a function due to destination being busy
  • Provides Coordinator responsible for coordinating the execution of flows submitted to it
  • Provides Dispatcher used by the Coordinator to dispatch Jobs for execution by an Executor
  • Holds all Error types, and other modules in this crate will use errors::*; to get access to everything error_chain creates.
  • Provides Executor that receives jobs for execution, executes them and returns results
  • Provides methods to get information about this library
  • Provides Job that holds jobs before and after their execution
  • Provides a number of traits that define methods used in protocols between server and clients that a client must implement. Such as [DebuggerProtocol][protocols::DebuggerProtocol] and SubmissionProtocol
  • Provides RunState that tracks the current runtime state, used by Coordinator
  • Provides well-known service names used across multiple binary crates