14 releases
0.1.16 | Dec 3, 2022 |
---|---|
0.1.15 | Dec 3, 2022 |
0.1.14 | Nov 26, 2022 |
0.1.12 | Oct 16, 2022 |
0.1.0 | Mar 8, 2022 |
#366 in Programming languages
40 downloads per month
105KB
2.5K
SLoC
Marigold
Marigold is an imperative, domain-specific language for data pipelining and analysis using async streams. It can be used as a standalone language or within Rust programs.
use marigold::m;
let odd_digits = m!(
fn is_odd(i: &i32) -> bool {
i.wrapping_rem(2) == 1
}
range(0, 10)
.filter(is_odd)
.return
).await.collect::<Vec<_>>();
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.
Dependencies
~5–16MB
~205K SLoC