WSGI HTTP Server for UNIX
Project description
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.
Features
Applications
Reverse proxy implementation (with Restkit WSGI proxy)
Comet
Long Polling
…
Install
Grainbows requires Python 2.x superior to 2.5.
Install from sources:
$ python setup.py 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.
do:
$ easy_install -U eventlet
Replace eventlet by gevent if you want to use gevent.
Usage
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 grainbows.conf.py 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/configfile.py awesomeproject.wsgi.main:main_app
Full command line usage:
$ grainbows --help Usage: grainbows [OPTIONS] APP_MODULE Options: --use=USE method to use (eventlet, gevent) -c CONFIG, --config=CONFIG Config file. [none] -b BIND, --bind=BIND Adress to listen on. Ex. 127.0.0.1:8000 or unix:/tmp/gunicorn.sock -w WORKERS, --workers=WORKERS Number of workers to spawn. [1] -p PIDFILE, --pid=PIDFILE 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.
Development
You can get the source on Github :
And send your feedback on the tracker .
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.