Atmos is a programming library for Lua that reconciles Structured Concurrency with Event-Driven Programming

$ luarocks install atmos

Atmos is a programming library for Lua that reconciles *Structured
Concurrency* with *Event-Driven Programming*, extending classical
structured programming with two main functionalities:

- Structured Deterministic Concurrency:
- The `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`).
- The `tasks` container primitive holds attached tasks and control
their lifecycle.
- Event Signaling Mechanisms:
- The `await` primitive suspends a task and wait for events.
- The `emit` primitive signal events and awake awaiting tasks.

Atmos is inspired by synchronous programming languages like Ceu and
Esterel.

Versions

0.5-157 days ago25 downloads
0.4-2122 days ago8 downloads
0.4-1122 days ago1 download
0.3-3162 days ago10 downloads
0.3-2169 days ago3 downloads
0.3-1175 days ago0 downloads
0.2.1-1221 days ago14 downloads
0.2-3232 days ago(revision: 2)0 downloads
0.2-2234 days ago1 download
0.1-1264 days ago(revision: 12)17 downloads

Dependencies

f-streams ~> 0.2
lua >= 5.4

Dependency for

atmos-env-pico, atmos-env-sdl, atmos-env-socket, atmos-lang

Manifests