Skip to content

Instantly share code, notes, and snippets.

@cbrake
Created April 9, 2012 14:50
Show Gist options
  • Save cbrake/2344005 to your computer and use it in GitHub Desktop.
Save cbrake/2344005 to your computer and use it in GitHub Desktop.
async programming in C
• async programming
∘ http://software.schmorp.de/pkg/libeio.html
‣ Libeio is a full-featured asynchronous I/O library for C, modelled in similar style and spirit as libev. Features include: asynchronous read, write, open, close, stat, unlink, fdatasync, mknod, readdir etc. (basically the full POSIX API). sendfile (native on solaris, linux, hp-ux, freebsd, emulated everywehere else), readahead (emulated where not available).
‣ It is fully event-library agnostic and can easily be integrated into any event-library (or used standalone, even in polling mode). It is very portable and relies only on POSIX threads.
∘ http://software.schmorp.de/pkg/libev.html
‣ A full-featured and high-performance (see benchmark) event loop that is loosely modelled after libevent, but without its limitations and bugs. It is used, among others, in the GNU Virtual Private Ethernet and rxvt-unicode packages, and in the Deliantra MORPG Server and Client.
‣ Features include child/pid watchers, periodic timers based on wallclock (absolute) time (in addition to timers using relative timeouts), as well as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer management, time jump detection and correction, and ease-of-use.
‣ It can be used as a libevent replacement using its emulation API or directly embedded into your programs without the need for complex configuration support. A full-featured and well-documented perl interface is also available.
∘ https://github.com/joyent/libuv
‣ libuv is a new platform layer for Node. Its purpose is to abstract IOCP on Windows and libev on Unix systems. We intend to eventually contain all platform differences in this library.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment