$ luarocks install atmosAtmos is a programming library for Lua that reconciles Structured Concurrency and Event-Driven Programming, extending classical structured programming with two main functionalities:
* Structured Deterministic Concurrency:
- A `task` primitive with deterministic scheduling provides predictable behavior and safe abortion.
- Structured primitives compose concurrent tasks with lexical scope (e.g., `watching`, `every`, `par_or`).
- A `tasks` container primitive holds attached tasks and control their lifecycle.
* Event Signaling Mechanisms:
- An `await` primitive suspends a task and wait for events.
- An `emit` primitive signals events and awake awaiting tasks.
Atmos is inspired by synchronous programming languages like Céu and Esterel.