Expand description
Hydroflow is a low-level dataflow-based runtime system for the Hydro Project.
The primary item in this crate is the Hydroflow struct,
representing a Hydroflow dataflow graph. Although this graph can be manually constructed, the
easiest way to instantiate a Hydroflow instance is with the dfir_syntax! macro using
Hydroflow’s custom “surface syntax.”
let mut hf = dfir_rs::dfir_syntax! {
source_iter(["hello", "world"]) -> for_each(|s| println!("{}", s));
};
hf.run_available();For more examples, check out the examples folder on Github.
Re-exports§
pub use dfir_lang as lang;pub use variadics;pub use bincode;pub use bytes;pub use futures;pub use itertools;pub use lattices;pub use pusherator;pub use rustc_hash;pub use serde;pub use serde_json;pub use tokio;pub use tokio_stream;pub use tokio_util;pub use tracing;pub use web_time;
Modules§
- Hydroflow’s inner (intra-subgraph) compiled layer.
- Hydroflow’s outer scheduled layer. Deals with inter-subgraph runtime data-passing and scheduling.
- Helper utilities for the Hydroflow surface syntax.
Macros§
- Asserts that the variable’s type implements the given traits.
- Generate a Hydroflow instance from Datalog code.
- Parse Hydroflow “surface syntax” without emitting code.
- Create a Hydroflow instance using Hydroflow’s custom “surface syntax.”
dfir_syntax!but will not emit any diagnostics (errors, warnings, etc.).- Tests that the given warnings are emitted by the dfir macro invocation.
- Checks that the given closure is a monotonic function. For now does nothing.
- Checks that the given closure is a morphism. For now does nothing.
assert!but returns a [Result<(), String>] instead of panicking.assert_eq!but returns a [Result<(), String>] instead of panicking.- Variadic patterns macro.
- Variadic expressions (values) macro.
- Variadic types macro.
Type Aliases§
- Stand-in for the nightly “never” type
!