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 m;
let odd_digits = m!.await.;
println!; // [1, 3, 5, 7, 9]
Quickstart
Install
|
Or via cargo:
Or from source:
Hello World
Create hello_world.marigold:
range(0, 5).write_file("/dev/stdout", csv)
Run it:
Output:
0
1
2
3
4
Static Analysis
Marigold can statically analyze your program's complexity:
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.