Crate hydroflow

Source
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 hydroflow_syntax! macro using Hydroflow’s custom “surface syntax.”

let mut hf = hydroflow::hydroflow_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 variadics;
pub use bincode;
pub use bytes;
pub use futures;
pub use hydroflow_lang as lang;
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§

compiled
Hydroflow’s inner (intra-subgraph) compiled layer.
scheduled
Hydroflow’s outer scheduled layer. Deals with inter-subgraph runtime data-passing and scheduling.
util
Helper utilities for the Hydroflow surface syntax.

Macros§

assert_var_impl
Asserts that the variable’s type implements the given traits.
datalog
Generate a Hydroflow instance from Datalog code.
hydroflow_expect_warnings
Tests that the given warnings are emitted by the hydroflow macro invocation.
hydroflow_parser
Parse Hydroflow “surface syntax” without emitting code.
hydroflow_syntax
Create a Hydroflow instance using Hydroflow’s custom “surface syntax.”
hydroflow_syntax_noemit
hydroflow_syntax! but will not emit any diagnostics (errors, warnings, etc.).
monotonic_fn
Checks that the given closure is a monotonic function. For now does nothing.
morphism
Checks that the given closure is a morphism. For now does nothing.
rassert
assert! but returns a [Result<(), String>] instead of panicking.
rassert_eq
assert_eq! but returns a [Result<(), String>] instead of panicking.
var_args
Variadic patterns macro.
var_expr
Variadic expressions (values) macro.
var_type
Variadic types macro.

Type Aliases§

Never
The nightly “never” type !

Attribute Macros§

main
test

Derive Macros§

DemuxEnum