Marigold is a domain-specific language for working with asynchronous streams of data. It compiles to Rust, and can be integrated into Rust programs using a macro.
Marigold is designed to rapidly build parallel data pipelines and analyses. The grammar includes pure functions, immutable, fixed-size types with built-in serialization and compression, and an opinionated, always-async IO/network API. Integrated into a Rust program, Marigold seemlessly accepts Rust structs and functions that are in scope.
Keywords: Domain Specific Language, Programming Language Design, PL, Async Rust, Streaming Data, Data Pipelining, Data Analysis, Procedural Macros, LALRPOP.