diff --git a/README b/README index d7b69e5..4defc88 100644 --- a/README +++ b/README @@ -1,19 +1,43 @@ -Getting Started +Eventlet is a concurrent networking library for Python that allows you to change how you run your code, not how you write it. + +It uses epoll or libevent for highly scalable non-blocking I/O. Coroutines ensure that the developer uses a blocking style of programming that is similar to threading, but provide the benefits of non-blocking I/O. The event dispatch is implicit, which means you can easily use Eventlet from the Python interpreter, or as a small part of a larger application. + +It's easy to get started using Eventlet, and easy to convert existing +applications to use it. Start off by looking at the `examples`_, +`common design patterns`_, and the list of `basic API primitives`_. + +.. _examples: http://eventlet.net/doc/examples.html +.. _common design patterns: http://eventlet.net/doc/design_patterns.html +.. _basic API primitives: http://eventlet.net/doc/basic_usage.html + +Quick Example =============== -There's some good documentation up at: http://eventlet.net/doc/ +Here's something you can try right on the command line:: -Here's something you can try right on the command line: + % python + >>> import eventlet + >>> from eventlet.green import urllib2 + >>> gt = eventlet.spawn(urllib2.urlopen, 'http://eventlet.net') + >>> gt2 = eventlet.spawn(urllib2.urlopen, 'http://secondlife.com') + >>> gt2.wait() + >>> gt.wait() -% python ->>> import eventlet ->>> from eventlet.green import urllib2 ->>> gt = eventlet.spawn(urllib2.urlopen, 'http://eventlet.net') ->>> gt2 = eventlet.spawn(urllib2.urlopen, 'http://secondlife.com') ->>> gt2.wait() ->>> gt.wait() -Also, look at the examples in the examples directory. +Getting Eventlet +================== + +The easiest way to get Eventlet is to use easy_install or pip:: + + easy_install eventlet + pip install eventlet + +The development `tip`_ is available via easy_install as well:: + + easy_install 'eventlet==dev' + pip install 'eventlet==dev' + +.. _tip: http://bitbucket.org/which_linden/eventlet/get/tip.zip#egg=eventlet-dev Building the Docs Locally ========================= diff --git a/eventlet/__init__.py b/eventlet/__init__.py index 9c82d13..7361da2 100644 --- a/eventlet/__init__.py +++ b/eventlet/__init__.py @@ -1,4 +1,4 @@ -version_info = (0, 9, 7) +version_info = (0, 9, 7, "dev1") __version__ = ".".join(map(str, version_info)) try: diff --git a/setup.py b/setup.py index cd8e799..f3458ce 100644 --- a/setup.py +++ b/setup.py @@ -3,6 +3,7 @@ from setuptools import find_packages, setup from eventlet import __version__ +from os import path import sys requirements = [] @@ -22,12 +23,12 @@ setup( packages=find_packages(exclude=['tests']), install_requires=requirements, zip_safe=False, - long_description=""" - 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.""", + long_description=open( + path.join( + path.dirname(__file__), + 'README' + ) + ).read(), test_suite = 'nose.collector', classifiers=[ "License :: OSI Approved :: MIT License",