Crate dfir_rs

Source
Expand description

DFIR is a low-level dataflow-based runtime system for the Hydro Project.

The primary item in this crate is the Dfir struct, representing a DFIR dataflow graph. Although this graph can be manually constructed, the easiest way to instantiate a graph instance is with the dfir_syntax! macro using DFIR’s custom syntax.

let mut df = dfir_rs::dfir_syntax! {
    source_iter(["hello", "world"]) -> for_each(|s| println!("{}", s));
};
df.run_available();

For more examples, check out the examples folder on Github.

Re-exports§

pub use dfir_lang as lang;meta
pub use pyo3;python
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§

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

Macros§

assert_var_impl
Asserts that the variable’s type implements the given traits.
datalogdfir_datalog
Generate a graph instance from Datalog code.
dfir_expect_warnings
Tests that the given warnings are emitted by the dfir macro invocation.
dfir_parserdfir_macro
Parse DFIR syntax without emitting code.
dfir_syntaxdfir_macro
Create a runnable graph instance using DFIR’s custom syntax.
dfir_syntax_noemitdfir_macro
dfir_syntax! but will not emit any diagnostics (errors, warnings, etc.).
launchdeploy_integration
monotonic_fndfir_macro
Checks that the given closure is a monotonic function. For now does nothing.
morphismdfir_macro
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
Stand-in for the nightly “never” type !

Attribute Macros§

maindfir_macro
testdfir_macro

Derive Macros§

DemuxEnumdfir_macro