EXPERIMENTAL! UNSTABLE! A WORK IN PROGRESS!
GJ is a port of the
KJ event loop
into Rust.
Its central abstraction is the
Promise<T,E>
struct
which is similar to Javascript's
Promise
class.
Promises that are chained recursively can be thought of as lightweight stackless tasks. A GJ event loop allows you to execute many such tasks on a single operating system thread and to safely share mutable data between them without any need for mutexes or atomics.
For a completion-based I/O interface built on top of GJ, see gjio.