Marigold

crates.io docs.rs tests bench style wasm last commit

Marigold is a domain-specific language for streaming data pipelining and analysis. Marigold compiles to asynchronous Rust, and can be accessed in a macro:

```rust use marigold::m;

let is_odd = |i: &i32| i % 2 == 1;

let odddigits = m!( range(0, 10) .filter(isodd) .to_vec() .return ).await;

println!("{:?}", odd_digits); // [1, 3, 5, 7, 9] ```

Runtimes

By default, Marigold works in a single future and can work with any runtime.

The tokio and async-std features allow Marigold to spawn additional tasks, enabling parallelism for multithreaded runtimes.

Marigold supports async tracing, e.g. with tokio-console.

Platforms

Marigold's CI builds against aarch64, arm, WASM, and x86 targets, and builds the x86 target in mac and windows environments.