The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached.
libevent is meant to replace the event loop found in event-driven network servers.
Currently, libevent supports /dev/poll, kqueue(2), POSIX select(2), Windows IOCP, poll(2), epoll(7) and Solaris event ports.
As a result, libevent allows for portable application development and provides "the most scalable event notification mechanism available on an operating system".
libevent was created by Niels Provos, and is maintained primarily by Azat Khuzhin.