{ "info": { "author": "Manuel Kreutz", "author_email": "manuel@140.am", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Clustering", "Topic :: System :: Distributed Computing", "Topic :: System :: Networking", "Topic :: System :: Systems Administration" ], "description": "The `butler` framework aims to make building reliable and high-performance service-oriented\nsystems easy. The internal communication is done via \u00d8MQ sockets.\n\nUsage\n-----\n\nStart a Router::\n\n import butler\n\n router = butler.Router()\n router.frontend.bind(\"tcp://*:5555\")\n router.backend.bind(\"tcp://*:5556\")\n router.run()\n\nRegister a Service Worker by name::\n\n worker = butler.Service('tcp://127.0.0.1:5556', 'api.images')\n\nExpose a function on the Service Worker::\n\n def resize_image(name, size):\n return 'resized image'\n\n worker.register_function(resize_image)\n worker.run()\n\nOr expose all the methods of an object::\n\n class RPCService(object):\n def resize_image(self, name, size):\n return 'resized image'\n\n worker.register(RPCService())\n worker.run()\n\nSend a request to a registered Service and receive its response::\n\n client = butler.Client('tcp://127.0.0.1:5555').rpc('api.images')\n client.resize_image('test.jpeg', '150x180')\n client.close()", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/140am/butler", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "butler", "package_url": "https://pypi.org/project/butler/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/butler/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/140am/butler" }, "release_url": "https://pypi.org/project/butler/0.3.0/", "requires_dist": null, "requires_python": null, "summary": "0MQ based Service Oriented RPC Framework", "version": "0.3.0" }, "last_serial": 787141, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "3845b61821d7a42f3221d6b253bca9ac", "sha256": "18b48bc9efa10599cb8940c0e38edc4808c32c5f7d365c5eb0941baf5cb20910" }, "downloads": -1, "filename": "butler-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3845b61821d7a42f3221d6b253bca9ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9306, "upload_time": "2012-11-21T20:20:24", "url": "https://files.pythonhosted.org/packages/f4/06/9da2b6f1d7995878d693c070c1268b305a753db2e7a38265aee50c61433a/butler-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c951796a8285666aa09fe2e60f2056ff", "sha256": "0e6ea64446f0e603aa383437eb286e121880644a77dfd68da3e8784fad291526" }, "downloads": -1, "filename": "butler-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c951796a8285666aa09fe2e60f2056ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9731, "upload_time": "2013-02-10T04:58:19", "url": "https://files.pythonhosted.org/packages/8b/94/ec04897a481c44cda6070863b6cc63f560242c56f832b5f60609d671c18d/butler-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c951796a8285666aa09fe2e60f2056ff", "sha256": "0e6ea64446f0e603aa383437eb286e121880644a77dfd68da3e8784fad291526" }, "downloads": -1, "filename": "butler-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c951796a8285666aa09fe2e60f2056ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9731, "upload_time": "2013-02-10T04:58:19", "url": "https://files.pythonhosted.org/packages/8b/94/ec04897a481c44cda6070863b6cc63f560242c56f832b5f60609d671c18d/butler-0.3.0.tar.gz" } ] }