62 lines
2.5 KiB
Plaintext
62 lines
2.5 KiB
Plaintext
= eventlet =
|
|
|
|
Eventlet is a networking library written in Python. It achieves high
|
|
scalability by using non-blocking io while at the same time retaining
|
|
high programmer usability by using coroutines to make the non-blocking
|
|
io operations appear blocking at the source code level.
|
|
|
|
The wiki at http://wiki.secondlife.com/wiki/Eventlet is likely to be a
|
|
more current source of information than this README. Questions,
|
|
patches, and general discussion go to the eventlet mailing list:
|
|
https://lists.secondlife.com/cgi-bin/mailman/listinfo/eventletdev
|
|
|
|
== requirements ===
|
|
|
|
Eventlet runs on Python version 2.4 or greater, with the following dependenceis:
|
|
* http://cheeseshop.python.org/pypi/greenlet
|
|
|
|
== limitations ==
|
|
|
|
* Not enough test coverage -- the goal is 100%, but we are not there yet.
|
|
* Eventlet does not currently run on stackless using tasklets, though
|
|
it is a goal to do so in the future.
|
|
|
|
== getting started ==
|
|
|
|
% python
|
|
>>> from eventlet import api
|
|
>>> help(api)
|
|
|
|
Also, look at the examples in the examples directory.
|
|
|
|
== eventlet history ==
|
|
|
|
eventlet began life as Donovan Preston was talking to Bob Ippolito
|
|
about coroutine-based non-blocking networking frameworks in
|
|
Python. Most non-blocking frameworks require you to run the "main
|
|
loop" in order to perform all network operations, but Donovan wondered
|
|
if a library written using a trampolining style could get away with
|
|
transparently running the main loop any time i/o was required,
|
|
stopping the main loop once no more i/o was scheduled. Bob spent a few
|
|
days during PyCon 2005 writing a proof-of-concept. He named it
|
|
eventlet, after the coroutine implementation it used,
|
|
[[greenlet]]. Donovan began using eventlet as a light-weight network
|
|
library for his spare-time project Pavel, and also began writing some
|
|
unittests.
|
|
|
|
* http://svn.red-bean.com/bob/eventlet/trunk/
|
|
* http://soundfarmer.com/Pavel/trunk/
|
|
|
|
When Donovan started at Linden Lab in May of 2006, he added eventlet
|
|
as an svn external in the indra/lib/python directory, to be a
|
|
dependency of the yet-to-be-named [[backbone]] project (at the time,
|
|
it was named restserv). However, including eventlet as an svn external
|
|
meant that any time the externally hosted project had hosting issues,
|
|
Linden developers were not able to perform svn updates. Thus, the
|
|
eventlet source was imported into the linden source tree at the same
|
|
location, and became a fork.
|
|
|
|
Bob Ippolito has ceased working on eventlet and has stated his desire
|
|
for Linden to take its fork forward to the open source world as "the"
|
|
eventlet.
|