Expand description
A library for programming stackful coroutines in Rust.
Cogo is a high-performant library for programming stackful coroutines with which you can easily develop and maintain massive concurrent programs. It can be thought as the Rust version of the popular Goroutine.
Features
- The stackful coroutine’s implementation is based on generator;
- Support schedule on a configurable number of threads for multi-core systems;
- Support coroutine’s version of a local storage ([CLS][cls]);
- Support efficient asynchronous network I/O;
- Support efficient timer management;
- Support standard synchronization primitives, a semaphore, an MPMC channel, etc;
- Support cancellation of coroutines;
- Support graceful panic handling that will not affect other coroutines;
- Support scoped coroutine creation;
- Support general selection for all the coroutine’s API;
- All the coroutine’s API are compatible with the standard library semantics;
- All the coroutine’s API can be safely called in multi-threaded context;
- Both stable, beta, and nightly channels are supported;
- Both x86_64 GNU/Linux, x86_64 Windows, x86_64 Mac OS are supported.
Modules
Macros
create an channel(mpmc) for example:
A macro to create a static of type LocalKey
macro used to create the select coroutine that will run in a infinite loop, and generate as many events as possible
macro used to create the select coroutine that will run only once, thus generate only one event
Defers evaluation of a block of code until the end of the scope. Sort of LIFO(last-in, first-out queue)
warp errors
macro used to spawn a coroutine
macro used to spawn a coroutine with options such as name, stack_size.
make an hash map for example:
macro used to join all scoped sub coroutines
macro used to select for only one event it will return the index of which event happens first
Structs
Functions
get the may configuration instance