Lightweight in-process concurrent programming
The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called “tasklets”. Tasklets run pseudo-concurrently (typically in a single or a few OS-level threads) and are synchronized with data exchanges on “channels”.
A “greenlet”, on the other hand, is a still more primitive notion of micro-thread with no implicit scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. You can build custom scheduled micro-threads on top of greenlet; however, it seems that greenlets are useful on their own as a way to make advanced control flow structures. For example, we can recreate generators; the difference with Python’s own generators is that our generators can call nested functions and the nested functions can yield values too. Additionally, you don’t need a “yield” keyword. See the example in tests/test_generator.py.
Greenlets are provided as a C extension module for the regular unmodified interpreter.
Greenlets are lightweight coroutines for in-process concurrent programming.
Who is using Greenlet?
There are several libraries that use Greenlet as a more flexible alternative to Python’s built in coroutine support:
The easiest way to get Greenlet is to install it with pip or easy_install:
pip install greenlet easy_install greenlet
Source code archives and windows installers are available on the python package index at http://pypi.python.org/pypi/greenlet
The source code repository is hosted on github: https://github.com/python-greenlet/greenlet
The master branch - i.e. the development version - can be installed directly by running one of the following:
pip install greenlet==dev easy_install greenlet==dev
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size greenlet-0.4.1.win32-py2.4.exe (76.6 kB)||File type Windows Installer||Python version 2.4||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win32-py2.5.exe (75.4 kB)||File type Windows Installer||Python version 2.5||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win32-py2.6.exe (211.6 kB)||File type Windows Installer||Python version 2.6||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win32-py2.7.exe (211.4 kB)||File type Windows Installer||Python version 2.7||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win32-py3.3.exe (206.1 kB)||File type Windows Installer||Python version 3.3||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win-amd64-py2.7.exe (239.8 kB)||File type Windows Installer||Python version 2.7||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.win-amd64-py3.3.exe (238.2 kB)||File type Windows Installer||Python version 3.3||Upload date||Hashes View|
|Filename, size greenlet-0.4.1.zip (75.7 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for greenlet-0.4.1.win-amd64-py2.7.exe
Hashes for greenlet-0.4.1.win-amd64-py3.3.exe