Skip to main content

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

  • 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 .

Applications

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 :

http://github.com/benoitc/grainbows/

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.

Filename, size & hash SHA256 hash help File type Python version Upload date
grainbows-0.1.3.tar.gz (13.0 kB) Copy SHA256 hash SHA256 Source None Mar 16, 2010

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page