{ "info": { "author": "Benoit Chesneau", "author_email": "benoitc@e-engura.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Topic :: Software Development :: Libraries", "Topic :: System :: Boot", "Topic :: System :: Monitoring", "Topic :: System :: Systems Administration" ], "description": "**NOTICE**: Since the 2013/05/25, a deep rewrite on the gaffer code is\nin progress.\n\n**2013-10-29 - 0.5.1 released.**\n\n> slow progress on the new version. Have been distracted by some due\n> work. The new design is in place now and the new branch will be\n> created soon,\n\n\n\n\n# Gaffer\n\n\nControl, Watch and Launch your applications and jobs over HTTP.\n\nGaffer is a set of Python modules and tools to easily maintain and\ninteract with your applications or jobs launched on different machines over\nHTTP and websockets.\n\nIt promotes distributed and decentralized topologies without single points of\nfailure, enabling fault tolerance and high availability.\n\n## Features\n\n- RESTful HTTP Api\n- Websockets and [SOCKJS](http://sockjs.org) support to interact with a gaffer node from any browser or SOCKJS client.\n- Framework to manage and interact your applications and jobs on\n- differerent machines\n- Server and command-line tools to manage and interract with your processes\n- manages topology information. Clients query gaffer_lookupd to discover gaffer nodes for a specific job or application.\n- Possibility to interact with STDIO and PIPES to interact with your\n applications and processes\n- Subscribe to process statistics per process or process templates and get them in quasi RT.\n- Procfile applications support but also JSON config support.\n- Supervisor-like features.\n- Fully evented. Use the libuv event loop using the [pyuv library](http://pyuv.readthedocs.org)\n- Flapping: handle cases where your processes crash too much\n- Easily extensible: add your own endpoint, create your client, embed gaffer in your application, ...\n- Compatible with python 2.7x, 3.x\n\n## Documentation\n\nhttp://gaffer.readthedocs.org\n\n## Getting Started\n\n\nhttp://gaffer.readthedocs.org/en/latest/getting-started.html\n\n## Installation\n\n\nGaffer requires Python superior to 2.6 (yes Python 3 is supported)\n\nTo install gaffer using pip you must make sure you have a\nrecent version of distribute installed:\n\n $ curl -O http://python-distribute.org/distribute_setup.py\n $ sudo python distribute_setup.py\n $ easy_install pip\n\n\nTo install from source, run the following command:\n\n $ pip install git+https://github.com/benoitc/gaffer.git\n\n\nFrom pypi:\n\n $ pip install gaffer\n\n## Build status\n\n\"Build\n\n\n## License\n\ngaffer is available in the public domain (see UNLICENSE). gaffer is also\noptionally available under the MIT License (see LICENSE), meant\nespecially for jurisdictions that do not recognize public domain\nworks.", "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/gaffer", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "gaffer", "package_url": "https://pypi.org/project/gaffer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gaffer/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/benoitc/gaffer" }, "release_url": "https://pypi.org/project/gaffer/0.5.2/", "requires_dist": null, "requires_python": null, "summary": "simple system process manager", "version": "0.5.2" }, "last_serial": 898214, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "044092ace3e53bf010ced086f5928c09", "sha256": "834a56999e9cbca59253b27943fcf2435a32155d658e1537725fe39bba6b8a75" }, "downloads": -1, "filename": "gaffer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "044092ace3e53bf010ced086f5928c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54975, "upload_time": "2012-10-12T09:18:18", "url": "https://files.pythonhosted.org/packages/32/15/c7047a5ec8f21ad0d9e87c5b326550d36098f814f0848fe6f415494574eb/gaffer-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7c21f4371c7f09a3d5a1e8fe193774cb", "sha256": "a1a160c6a036441efa98cc07b084d4630669cf2e8c24874337e2fddd2736dcbc" }, "downloads": -1, "filename": "gaffer-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7c21f4371c7f09a3d5a1e8fe193774cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54541, "upload_time": "2012-10-12T10:17:11", "url": "https://files.pythonhosted.org/packages/2c/31/f0d000ab7ab18d494f865d8ea49b9b6a7c744c26ecc321b71d4cd0468c59/gaffer-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "224966554b16355225082b85836b0230", "sha256": "cff3d0c2d6b0ced983ef4a12187189ccb34a9d0e33579f96485084c0084a837b" }, "downloads": -1, "filename": "gaffer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "224966554b16355225082b85836b0230", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59995, "upload_time": "2012-10-15T14:07:24", "url": "https://files.pythonhosted.org/packages/08/86/c3c708de478e567f9c82cd36d3bc72db872267a38394ba35dbbd040c4fb0/gaffer-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ede61432e3ddf78bf066d5068c1a8b54", "sha256": "f60fa4b539c869fac2de9ab089ed6aba4ec58b40cc5e5fe0e00650837cca0451" }, "downloads": -1, "filename": "gaffer-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ede61432e3ddf78bf066d5068c1a8b54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 286225, "upload_time": "2012-10-18T03:03:33", "url": "https://files.pythonhosted.org/packages/82/79/1952d9759a07b7bcce563d825e2e22119deb9951862ff83bce6c85107b13/gaffer-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "43bab826e5aa24b383e3b12d1aaf2f95", "sha256": "09af4089427df12e3f220b533d8f13e450945550839bd571bfcccc83aa201322" }, "downloads": -1, "filename": "gaffer-0.3.1.tar.gz", "has_sig": false, "md5_digest": "43bab826e5aa24b383e3b12d1aaf2f95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 286776, "upload_time": "2012-10-18T10:59:35", "url": "https://files.pythonhosted.org/packages/e9/11/c9fe46117808fb4d0b4310d940fff77bd7e9a6f9556b4712cf6119b7a997/gaffer-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d2242296799cfca16f7f8b1058262725", "sha256": "40361af9670c73986e126735d0730f609b9e5d82f731a8ecaea786afc0e8b1e7" }, "downloads": -1, "filename": "gaffer-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d2242296799cfca16f7f8b1058262725", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290313, "upload_time": "2012-10-28T23:38:23", "url": "https://files.pythonhosted.org/packages/5b/e4/43c85e5d1d70a7063613d26d9564cd41401c9523d5fb557a3c50d66e9020/gaffer-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5fe517a88b30e394198e0404f00d47e0", "sha256": "45482c42228a323314148c32a1b63a2db3fce3bbb4d8b425ed41829ef0f124d0" }, "downloads": -1, "filename": "gaffer-0.4.1.tar.gz", "has_sig": false, "md5_digest": "5fe517a88b30e394198e0404f00d47e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290342, "upload_time": "2012-10-29T00:04:13", "url": "https://files.pythonhosted.org/packages/c9/5a/e675926aad812061eb65bd386ecf8259093e653d6e3f824571e9d58a1648/gaffer-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a54925b246e58eb62c1bce2ac59b365b", "sha256": "63ddf3d6464568e44c1fa27a4a63fd9f10c40d8fd921a0e73a47025a6306a9e4" }, "downloads": -1, "filename": "gaffer-0.4.2.tar.gz", "has_sig": false, "md5_digest": "a54925b246e58eb62c1bce2ac59b365b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292487, "upload_time": "2012-11-01T11:02:45", "url": "https://files.pythonhosted.org/packages/92/50/e18a119294156d44186c1e5278d6010469a71198fd2ea2bf2a1ddba84d5c/gaffer-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "40982f16966cb0b4e8485c896722213a", "sha256": "d9141846ef67ed711ab30ad0626b1c1a26d1b0c30e88752538df0df0a124ddf8" }, "downloads": -1, "filename": "gaffer-0.4.3.tar.gz", "has_sig": false, "md5_digest": "40982f16966cb0b4e8485c896722213a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292595, "upload_time": "2012-11-02T12:48:15", "url": "https://files.pythonhosted.org/packages/13/9f/f6e4baaffaf6bc988554ac7bb4dda89211a53b5f87efd715e4019686dbe7/gaffer-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "252005d350a1bc6394a9764341ad4e6b", "sha256": "9ef7de965dbec3f15d1e9ae2d20065bb8288ade6b3a4993d041e59c44770f6ee" }, "downloads": -1, "filename": "gaffer-0.4.4.tar.gz", "has_sig": false, "md5_digest": "252005d350a1bc6394a9764341ad4e6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 293745, "upload_time": "2012-12-20T14:35:37", "url": "https://files.pythonhosted.org/packages/3c/cc/eabe1482c18eb6939ff4a1b1f020806dcd3a1f727921870c910c12f19fdf/gaffer-0.4.4.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d1d766b05bf713519c0072585e163d10", "sha256": "8672f3e3c01aa070eb856c4f6f32fd3b47b6ee676201fa21adc54d611a5f96d2" }, "downloads": -1, "filename": "gaffer-0.5.0.tar.gz", "has_sig": false, "md5_digest": "d1d766b05bf713519c0072585e163d10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371247, "upload_time": "2013-09-29T13:09:18", "url": "https://files.pythonhosted.org/packages/3c/a3/192a9f7a2b4e3f6927ba4c9c253ceba61af45232fa32fffcfa2d49dd2f33/gaffer-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "294fcdd9d1bb9a8d584bd222d25bac24", "sha256": "00e9f342ef56772069b84f2324173320636947747907a61b716b964438b90de8" }, "downloads": -1, "filename": "gaffer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "294fcdd9d1bb9a8d584bd222d25bac24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371482, "upload_time": "2013-09-29T13:20:22", "url": "https://files.pythonhosted.org/packages/a5/bb/1a9cbf80a305421f0c0c3c5cd7094ea7099e960c1d292d338092e744030a/gaffer-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "3753f416ab3b30bac17202e8507b44cf", "sha256": "43b473c5cff973f84ae1ef5babf57dbac2bcc8ec66b226a2134a67717a82df49" }, "downloads": -1, "filename": "gaffer-0.5.2.tar.gz", "has_sig": false, "md5_digest": "3753f416ab3b30bac17202e8507b44cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371455, "upload_time": "2013-10-19T12:50:30", "url": "https://files.pythonhosted.org/packages/23/d1/9f88d33f1674c6873567510e88518d39e5f0729acc887ce78d7aae61467e/gaffer-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3753f416ab3b30bac17202e8507b44cf", "sha256": "43b473c5cff973f84ae1ef5babf57dbac2bcc8ec66b226a2134a67717a82df49" }, "downloads": -1, "filename": "gaffer-0.5.2.tar.gz", "has_sig": false, "md5_digest": "3753f416ab3b30bac17202e8507b44cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371455, "upload_time": "2013-10-19T12:50:30", "url": "https://files.pythonhosted.org/packages/23/d1/9f88d33f1674c6873567510e88518d39e5f0729acc887ce78d7aae61467e/gaffer-0.5.2.tar.gz" } ] }