libev is modelled after libevent (http://monkey.org/~provos/libevent/), but aims to be faster and more correct, and also more featureful. Examples: - multiple watchers can wait for the same event without deregistering others. - fork() is supported and can be handled. - timers are handled as a priority queue (faster) - watchers use less memory (faster) - less calls to epoll_ctl (faster)