Oni is a framework for managing the control flow of concurrent
applications. There are two central ideas to Oni:
To make concurrent actions composable by implementing 'pseudo-sequential' control
structures with which asynchronous actions can be choreographed in
the same way in which traditional sequential control structures are used to choreograph
conventional synchronous actions. Ok, I'm not sure I even understand that myself.
But please read on anyway :-)
To leverage the facilities of a "host language" rather than
implement a complete programming language from scratch.
Oni can be implemented as a set of functions ("Oni operators") in a
suitable host language, such as JavaScript or C++ (any reasonable
language will do). Our current implementation, dubbed Oni/JS, is in JavaScript, targeted at
in-browser use (should work in any modern browser - FF, Chrome, Safari, IE, ...).
Oni requires no preprocessing or precompilation; an
Oni program is a just an expression in the host language.