Developer(s) | Azat Khuzhin, Mark Ellzey, Nick Mathewson,Niels Provos |
---|---|
Initial release | April 9, 2002; 22 years ago (2002-04-09) |
Stable release | |
Repository | |
Written in | C |
Operating system | Cross-platform |
Platform | Unix-like,Windows,OS X |
Type | NetworkLibrary |
License | BSD[2] |
Website | libevent |
libevent is asoftware library that provides asynchronous event notification. The libeventAPI provides a mechanism to execute acallback function when a specific event occurs on afile descriptor or after atimeout has been reached. libevent also supports callbacks triggered bysignals and regular timeouts.
libevent is meant to replace theevent loop found in event-drivennetwork servers. An application can just callevent_dispatch()
and then add or remove events dynamically without having to change the event loop.
Currently, libevent supports/dev/poll
,kqueue(2)
, POSIXselect(2)
, WindowsIOCP,poll(2)
,epoll(7)
andSolarisevent ports. It also has experimental support for real-time signals. The exposed event API is uniform over all of the supported platforms. As a result, libevent allows forportable application development and provides "the mostscalable event notification mechanism available on an operating system".[1]
Using callbacks on signals, libevent makes it possible to write "secure" signal handlers as none of the user supplied signal handling code runs in the signal'scontext.
libevent was created byNiels Provos, and is maintained primarily by Azat Khuzhin. It is released under aBSD license.[3]
This sectiondoes notcite anysources. Please helpimprove this section byadding citations to reliable sources. Unsourced material may be challenged andremoved.(June 2013) (Learn how and when to remove this message) |
Some of the notable applications that take advantage of libevent are: