skip to navigation
skip to content

grainbows 0.1.3


grainbow ‘Green Rainbows’ is a WSGI HTTP Server for UNIX, for sleepy application. It’s based on Gunicorn but it’s designed to handle applications that expect long request/response times and/or slow clients. For other applications, you should use gunicorn, since it’s easier to debug.


  • Designed for WSGI
  • Built on Gunicorn, inheriting its process/socket management features such as transparent upgrades and Python configuration DSL.
  • Decode chunked transfers on-the-fly, allowing upload progress notifications or stream-based protocols over HTTP
  • Support for Eventlet and Gevent .



Grainbows requires Python 2.x superior to 2.5.

Install from sources:

$ python install

Or from Pypi:

$ easy_install -U grainbows

By default grainbows use Gunicorn arbiter, so you won’t have any benefits. You need to install Eventlet or Gevent to use concurrency features.


$ easy_install -U eventlet

Replace eventlet by gevent if you want to use gevent.


for WSGI application:

To launch the example application packaged with Grainbows:

$ cd /path/to/grainbows/examples/
$ grainbows websocket:app

and then go on http://localhost:8000 to see the result.

Note : by default the configuration is set to use eventlet. If you want to test with gevent, edit file and replace use=”eventlet” by use=”gevent”.

The module test_keepalive:app specifies the complete module name and WSGI callable. You can replace it with anything that is available on your PYTHONPATH like such:

$ cd ~/
$ grainbows -c /path/to/ awesomeproject.wsgi.main:main_app

Full command line usage:

$ grainbows --help
Usage: grainbows [OPTIONS] APP_MODULE

  --use=USE             method to use (eventlet, gevent)
  -c CONFIG, --config=CONFIG
                        Config file. [none]
  -b BIND, --bind=BIND  Adress to listen on. Ex. or
  -w WORKERS, --workers=WORKERS
                        Number of workers to spawn. [1]
                        set the background PID FILE
  -D, --daemon          Run daemonized in the background.
  -m UMASK, --umask=UMASK
                        Define umask of daemon process
  -u USER, --user=USER  Change worker user
  -g GROUP, --group=GROUP
                        Change worker group
  -n PROC_NAME, --name=PROC_NAME
                        Process name
  --log-level=LOGLEVEL  Log level below which to silence messages. [info]
  --log-file=LOGFILE    Log to a file. - equals stdout. [-]
  -d, --debug           Debug mode. only 1 worker.
  --version             show program's version number and exit
  -h, --help            show this help message and exit

For Django applications use the grainbows_django command line and for Paste compatible applications (Pylons, TurboGears 2, …) use grainbows_paste. See the usage page on Gunicorn website for more information.

Configuration file

A configuration file is needed to setup Grainbows specific settings. An example can be found here

use = "eventlet"
worker_connections = 1000

You can also configure other settings, see the Gunicorn configuration page for more details.


You can get the source on Github :

And send your feedback on the tracker .

File Type Py Version Uploaded on Size
grainbows-0.1.3.tar.gz (md5) Source 2010-03-16 12KB