Cooperative I/O routines

CIO is a C library for I/O-driven cooperative multitasking that tries to abstract away the event loop. Applications are partitioned into multiple routines which have their own stacks. The routines do blocking I/O calls during which other routines are executed. The routines can communicate and synchronize between one another using channels. This approach is related to concepts like Communicating Sequential Processes, Continuations and Coroutines.

Tested on Linux/x86-64. The scheduler doesn't know multithreading yet.

API documentation
Source code

Git repository:


Issue tracker:


Copyright © 2010 Timo Savola <>

Released under the terms of the GNU Lesser General Public License version 2.1 or later.