1e3a38431SPaul Bohmlibev is a high-performance event loop/event model with lots of features. 2e3a38431SPaul Bohm(see benchmark at http://libev.schmorp.de/bench.html) 3e3a38431SPaul Bohm 4e3a38431SPaul Bohm 5e3a38431SPaul BohmABOUT 6e3a38431SPaul Bohm 7e3a38431SPaul Bohm Homepage: http://software.schmorp.de/pkg/libev 8e3a38431SPaul Bohm Mailinglist: [email protected] 9e3a38431SPaul Bohm http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev 10e3a38431SPaul Bohm Library Documentation: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod 11e3a38431SPaul Bohm 12e3a38431SPaul Bohm Libev is modelled (very losely) after libevent and the Event perl 13e3a38431SPaul Bohm module, but is faster, scales better and is more correct, and also more 14e3a38431SPaul Bohm featureful. And also smaller. Yay. 15e3a38431SPaul Bohm 16e3a38431SPaul Bohm Some of the specialties of libev not commonly found elsewhere are: 17e3a38431SPaul Bohm 18e3a38431SPaul Bohm - extensive and detailed, readable documentation (not doxygen garbage). 19e3a38431SPaul Bohm - fully supports fork, can detect fork in various ways and automatically 20e3a38431SPaul Bohm re-arms kernel mechanisms that do not support fork. 21e3a38431SPaul Bohm - highly optimised select, poll, epoll, kqueue and event ports backends. 22e3a38431SPaul Bohm - filesystem object (path) watching (with optional linux inotify support). 23e3a38431SPaul Bohm - wallclock-based times (using absolute time, cron-like). 24e3a38431SPaul Bohm - relative timers/timeouts (handle time jumps). 25e3a38431SPaul Bohm - fast intra-thread communication between multiple 26e3a38431SPaul Bohm event loops (with optional fast linux eventfd backend). 27*93823e6cSPaul Bohm - extremely easy to embed (fully documented, no dependencies, 28*93823e6cSPaul Bohm autoconf supported but optional). 29*93823e6cSPaul Bohm - very small codebase, no bloated library, simple code. 30e3a38431SPaul Bohm - fully extensible by being able to plug into the event loop, 31e3a38431SPaul Bohm integrate other event loops, integrate other event loop users. 32e3a38431SPaul Bohm - very little memory use (small watchers, small event loop data). 33e3a38431SPaul Bohm - optional C++ interface allowing method and function callbacks 34e3a38431SPaul Bohm at no extra memory or runtime overhead. 35e3a38431SPaul Bohm - optional Perl interface with similar characteristics (capable 36*93823e6cSPaul Bohm of running Glib/Gtk2 on libev). 37e3a38431SPaul Bohm - support for other languages (multiple C++ interfaces, D, Ruby, 38e3a38431SPaul Bohm Python) available from third-parties. 39e3a38431SPaul Bohm 40*93823e6cSPaul Bohm Examples of programs that embed libev: the EV perl module, node.js, 41*93823e6cSPaul Bohm auditd, rxvt-unicode, gvpe (GNU Virtual Private Ethernet), the 42*93823e6cSPaul Bohm Deliantra MMORPG server (http://www.deliantra.net/), Rubinius (a 43*93823e6cSPaul Bohm next-generation Ruby VM), the Ebb web server, the Rev event toolkit. 44e3a38431SPaul Bohm 45e3a38431SPaul Bohm 46e3a38431SPaul BohmCONTRIBUTORS 47e3a38431SPaul Bohm 48e3a38431SPaul Bohm libev was written and designed by Marc Lehmann and Emanuele Giaquinta. 49e3a38431SPaul Bohm 50e3a38431SPaul Bohm The following people sent in patches or made other noteworthy 51e3a38431SPaul Bohm contributions to the design (for minor patches, see the Changes 52e3a38431SPaul Bohm file. If I forgot to include you, please shout at me, it was an 53e3a38431SPaul Bohm accident): 54e3a38431SPaul Bohm 55e3a38431SPaul Bohm W.C.A. Wijngaards 56e3a38431SPaul Bohm Christopher Layne 57e3a38431SPaul Bohm Chris Brody 58e3a38431SPaul Bohm 59