/gj

event loop and promises in Rust

Primary LanguageRustMIT LicenseMIT

Good Job Event Loop

Build Status crates.io

documentation

WARNING: as of the 0.8 relase of capnp-rpc-rust, this library is DEPRECATED. Please use futures-rs instead.

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.