Pyev is a project mainly written in SHELL and C, it's free.
(fork of pyev of googlecode)
(fork of code.google.com/p/pyev/ -- code at initial commit is r63 in orig svn)
libev is an event loop: you register interest in certain events (such as a file descriptor being readable or a timeout occurring), and it will manage these event sources and provide your program with events. To do this, it must take more or less complete control over your process (or thread) by executing the event loop handler, and will then communicate events via a callback mechanism. You register interest in certain events by registering so-called event watchers, which you initialise with the details of the event, and then hand over to libev by starting the watcher.
libev supports select
, poll
, the Linux-specific epoll
, the
BSD-specific kqueue
and the Solaris-specific event port
mechanisms for
file descriptor events (:py:class:Io
), the Linux inotify
interface (for
:py:class:Stat
), Linux eventfd
/signalfd
(for faster and cleaner
inter-thread wakeup (:py:class:Async
)/signal handling (:py:class:Signal
)),
relative timers (:py:class:Timer
), absolute timers (:py:class:Periodic
),
timers with customised rescheduling (:py:class:Scheduler
), synchronous signals
(:class:Signal
), process status change events (:py:class:Child
), and event
watchers dealing with the event loop mechanism itself (:py:class:Idle
,
:py:class:Embed
, :py:class:Prepare
and :py:class:Check
watchers) as well
as file watchers (:py:class:Stat
) and even limited support for fork events
(:py:class:Fork
).
It also is quite fast <http://libev.schmorp.de/bench.html>
_.
libev is written and maintained by Marc Lehmann.
.. seealso::
libev's homepage <http://software.schmorp.de/pkg/libev>
_.
Useful links:
Latest release <http://pypi.python.org/pypi/pyev/>
_Documentation <http://packages.python.org/pyev/>
_Bug reports and feature requests <http://code.google.com/p/pyev/issues/list>
_pyev's source code <http://pyev.googlecode.com/>
is currently hosted by
Google code <http://code.google.com/>
and kept in a
Subversion <http://subversion.apache.org/>
_ repository.
Subversion instructions <http://code.google.com/p/pyev/source/checkout>
_Subversion browser <http://code.google.com/p/pyev/source/browse/>
_