{
"info": {
"author": "Benoit Chesneau",
"author_email": "benoitc@e-engura.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Other Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Programming Language :: Python",
"Topic :: Internet",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities"
],
"description": "About\n-----\n\ngrainbow '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.\n\nFeatures\n========\n\n* Designed for `WSGI `_\n* Built on `Gunicorn`_, inheriting its process/socket management features such as transparent upgrades and Python configuration DSL.\n* Decode chunked transfers on-the-fly, allowing upload progress notifications or\n stream-based protocols over HTTP\n* Support for `Eventlet`_ and `Gevent`_ .\n\n\nApplications\n============\n\n* Websockets (see `example `_), see the `demo `_\n* Reverse proxy implementation (with `Restkit WSGI proxy `_)\n* Comet\n* Long Polling\n* ...\n\nInstall\n=======\n\nGrainbows requires Python 2.x superior to 2.5.\n\nInstall from sources::\n\n $ python setup.py install\n\nOr from Pypi::\n\n $ easy_install -U grainbows\n\n \nBy default grainbows use `Gunicorn`_ arbiter, so you won't have any benefits. You need to install `Eventlet`_ or `Gevent`_ to use concurrency features.\n\ndo::\n\n $ easy_install -U eventlet\n\nReplace `eventlet` by **gevent** if you want to use `gevent`.\n \n \nUsage\n=====\n\nfor WSGI application:\n+++++++++++++++++++++\n\nTo launch the `example application `_ packaged with Grainbows::\n\n $ cd /path/to/grainbows/examples/\n $ grainbows websocket:app\n \nand then go on `http://localhost:8000` to see the result.\n\n*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\"`.\n\nThe 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::\n\n $ cd ~/\n $ grainbows -c /path/to/configfile.py awesomeproject.wsgi.main:main_app\n \n\nFull command line usage::\n\n $ grainbows --help\n Usage: grainbows [OPTIONS] APP_MODULE\n\n Options:\n --use=USE method to use (eventlet, gevent)\n -c CONFIG, --config=CONFIG\n Config file. [none]\n -b BIND, --bind=BIND Adress to listen on. Ex. 127.0.0.1:8000 or\n unix:/tmp/gunicorn.sock\n -w WORKERS, --workers=WORKERS\n Number of workers to spawn. [1]\n -p PIDFILE, --pid=PIDFILE\n set the background PID FILE\n -D, --daemon Run daemonized in the background.\n -m UMASK, --umask=UMASK\n Define umask of daemon process\n -u USER, --user=USER Change worker user\n -g GROUP, --group=GROUP\n Change worker group\n -n PROC_NAME, --name=PROC_NAME\n Process name\n --log-level=LOGLEVEL Log level below which to silence messages. [info]\n --log-file=LOGFILE Log to a file. - equals stdout. [-]\n -d, --debug Debug mode. only 1 worker.\n --version show program's version number and exit\n -h, --help show this help message and exit\n \n\nFor `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.\n\n \n\nConfiguration file\n++++++++++++++++++\n\nA configuration file is needed to setup `Grainbows` specific settings. An example can be found `here `_ ::\n\n use = \"eventlet\"\n worker_connections = 1000\n \nYou can also configure other settings, see the `Gunicorn configuration `_ page for more details.\n\nDevelopment\n===========\n\nYou can get the source on `Github `_ : \n\n http://github.com/benoitc/grainbows/\n \nAnd send your feedback on `the tracker `_ .\n \n\n.. _Gunicorn: http://gunicorn.org\n.. _Eventlet: http://eventlet.net\n.. _Gevent: http://gevent.org\n.. _Pylons: http://pylonshq.com/\n.. _Turbogears 2: http://turbogears.org/2.0/",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/benoitc/grainbows",
"keywords": null,
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "grainbows",
"package_url": "https://pypi.org/project/grainbows/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/grainbows/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://github.com/benoitc/grainbows"
},
"release_url": "https://pypi.org/project/grainbows/0.1.3/",
"requires_dist": null,
"requires_python": null,
"summary": "WSGI HTTP Server for UNIX",
"version": "0.1.3"
},
"last_serial": 792659,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "a6b709e3ad2d0d7d636932021cbc6493",
"sha256": "83c54ebe1a1748f6e8367bf268088db6db8ea02d726cf98f12e449f8a8303f88"
},
"downloads": -1,
"filename": "grainbows-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "a6b709e3ad2d0d7d636932021cbc6493",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7239,
"upload_time": "2010-03-14T01:03:19",
"url": "https://files.pythonhosted.org/packages/bb/6c/0da54cc46f12aaf40d16f931388d7a008ec304f565f868cf701d29a68722/grainbows-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "a7e2c67af8ccce4fbaa95238289fb3b7",
"sha256": "bbe19b0cbae8cb7925f102682a123b0ad9c07f373b21d43267f160743cb429ce"
},
"downloads": -1,
"filename": "grainbows-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "a7e2c67af8ccce4fbaa95238289fb3b7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8408,
"upload_time": "2010-03-14T09:53:36",
"url": "https://files.pythonhosted.org/packages/54/bb/df4dbbd102ba8b173d8e8c886d4af23960bb957e374b0ef57c5125f2d63d/grainbows-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "dff3d6241689a6217b9f1a36e4c0ee82",
"sha256": "70a661acecf19166ca5aaac279663bcb5e0c239684b35511fa71fcbdf93a5b61"
},
"downloads": -1,
"filename": "grainbows-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "dff3d6241689a6217b9f1a36e4c0ee82",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8564,
"upload_time": "2010-03-14T13:42:41",
"url": "https://files.pythonhosted.org/packages/18/ce/ae5fcef577e10baba7626d9c6380c54681a73c72d46c7caa14e7c2e4fce4/grainbows-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "d1c97f804a4e8be9dafde667104d38e5",
"sha256": "d98da3ba2edd4e56989858c597625ee61cf31d79bc1961ff43996572cb350cd6"
},
"downloads": -1,
"filename": "grainbows-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "d1c97f804a4e8be9dafde667104d38e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12958,
"upload_time": "2010-03-16T16:31:40",
"url": "https://files.pythonhosted.org/packages/7c/3d/cd1f0fcb8c8ef66baab1ca532caefd8a321c7ca97335081e4268a254b4d8/grainbows-0.1.3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d1c97f804a4e8be9dafde667104d38e5",
"sha256": "d98da3ba2edd4e56989858c597625ee61cf31d79bc1961ff43996572cb350cd6"
},
"downloads": -1,
"filename": "grainbows-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "d1c97f804a4e8be9dafde667104d38e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12958,
"upload_time": "2010-03-16T16:31:40",
"url": "https://files.pythonhosted.org/packages/7c/3d/cd1f0fcb8c8ef66baab1ca532caefd8a321c7ca97335081e4268a254b4d8/grainbows-0.1.3.tar.gz"
}
]
}