Crate may [] [src]

Rust Stackful Coroutine Library

May is a high performance stackful coroutine library that can be thought of rust version goroutine. You can use it easily to design and develop massive concurrent programs in Rust.

Features

  • Stackful coroutine implementation based on stackful generator
  • Support schedule on configurable number of threads for multi-cores
  • Support coroutine version local storage
  • Support efficient network async IO
  • Support efficient timer management
  • Support standard sync primitives plus semaphore, mpmc channel etc.
  • Support cancellation of coroutines
  • Support graceful panic handling that will not affect other coroutines
  • Support scoped coroutine creation
  • Support general select for all the coroutine APIs
  • All the coroutine APIs are compatible with std library semantics
  • All the coroutine APIs can be safely called in thread context

Modules

coroutine
cqueue
io

coroutine io utilities

net

Networking primitives

os
sync

Macros

coroutine_local

A macro to create a static of type LocalKey

cqueue_add

macro used to create the select coroutine that will run in a infinite loop, and generate as many events as possible

cqueue_add_oneshot

macro used to create the select coroutine that will run only once, thus generate only one event

go

macro used to spawn a coroutine

join

macro used to join all scoped sub coroutines

select

macro used to select for only one event it will return the index of which event happens first

Structs

Config

May Configuration type

LocalKey

A key for local data stored in a coroutine.

Functions

config

get the may configuration instance