A Go library for asynchronous programming.
It's quite an unusual implementation that coroutines do not exchange data directly. They just yield on awaiting events and resume on event notifications. Communications between coroutines are done by sending event notifications to each other.
Continue reading, or visit Go Reference if you are not there.