{ "info": { "author": "Studio Ousia", "author_email": "ikuya@ousia.jp", "bugtrack_url": null, "classifiers": [], "description": " Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\nDescription: mprpc\n =====\n \n .. image:: https://badge.fury.io/py/mprpc.png\n :target: http://badge.fury.io/py/mprpc\n \n .. image:: https://travis-ci.org/studio-ousia/mprpc.png?branch=master\n :target: https://travis-ci.org/studio-ousia/mprpc\n \n mprpc is a lightweight `MessagePack RPC `_ library. It enables you to easily build a distributed server-side system by writing a small amount of code. It is built on top of `gevent `_ and `MessagePack `_.\n \n \n Installation\n ------------\n \n To install mprpc, simply:\n \n .. code-block:: bash\n \n $ pip install mprpc\n \n Alternatively,\n \n .. code-block:: bash\n \n $ easy_install mprpc\n \n Examples\n --------\n \n RPC server\n ^^^^^^^^^^\n \n .. code-block:: python\n \n from gevent.server import StreamServer\n from mprpc import RPCServer\n \n class SumServer(RPCServer):\n def sum(self, x, y):\n return x + y\n \n server = StreamServer(('127.0.0.1', 6000), SumServer())\n server.serve_forever()\n \n RPC client\n ^^^^^^^^^^\n \n .. code-block:: python\n \n from mprpc import RPCClient\n \n client = RPCClient('127.0.0.1', 6000)\n print client.call('sum', 1, 2)\n \n \n RPC client with connection pooling\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n \n .. code-block:: python\n \n import gsocketpool.pool\n from mprpc import RPCPoolClient\n \n client_pool = gsocketpool.pool.Pool(RPCPoolClient, dict(host='127.0.0.1', port=6000))\n \n with client_pool.connection() as client:\n print client.call('sum', 1, 2)\n \n \n Performance\n -----------\n \n mprpc significantly outperforms the `official MessagePack RPC `_ (**1.8x** faster), which is built using `Facebook's Tornado `_ and `MessagePack `_, and `ZeroRPC `_ (**14x** faster), which is built using `ZeroMQ `_ and `MessagePack `_.\n \n Results\n ^^^^^^^\n \n .. image:: https://raw.github.com/studio-ousia/mprpc/master/docs/img/perf.png\n :width: 550px\n :height: 150px\n :alt: Performance Comparison\n \n mprpc\n ~~~~~\n \n .. code-block:: bash\n \n % python benchmarks/benchmark.py\n call: 9508 qps\n call_using_connection_pool: 10172 qps\n \n \n Official MesssagePack RPC\n ~~~~~~~~~~~~~~~~~~~~~~~~~\n \n .. code-block:: bash\n \n % pip install msgpack-rpc-python\n % python benchmarks/benchmark_msgpackrpc_official.py\n call: 4976 qps\n \n ZeroRPC\n ~~~~~~~\n \n .. code-block:: bash\n \n % pip install zerorpc\n % python benchmarks/benchmark_zerorpc.py\n call: 655 qps\n \n \n Documentation\n -------------\n \n Documentation is available at http://mprpc.readthedocs.org/.\n \nKeywords: rpc,msgpack,messagepack,msgpackrpc,messagepackrpc,messagepack rpc,gevent\nPlatform: UNKNOWN\nClassifier: Development Status :: 4 - Beta\nClassifier: Intended Audience :: Developers\nClassifier: Natural Language :: English\nClassifier: License :: OSI Approved :: Apache Software License\nClassifier: Programming Language :: Python\nClassifier: Programming Language :: Python :: 2.6\nClassifier: Programming Language :: Python :: 2.7\nClassifier: Programming Language :: Python :: 3.3\nClassifier: Programming Language :: Python :: 3.4\nClassifier: Programming Language :: Python :: 3.5\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/studio-ousia/mprpc", "keywords": "", "license": "Copyright 2013 Studio Ousia", "maintainer": "", "maintainer_email": "", "name": "mprpc", "package_url": "https://pypi.org/project/mprpc/", "platform": "", "project_url": "https://pypi.org/project/mprpc/", "project_urls": { "Homepage": "http://github.com/studio-ousia/mprpc" }, "release_url": "https://pypi.org/project/mprpc/0.1.17/", "requires_dist": null, "requires_python": "", "summary": "A fast MessagePack RPC library", "version": "0.1.17" }, "last_serial": 4211157, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "314d07f48764ecddd028b0dc72e3863c", "sha256": "c2d9a9ab798e66bc08ac029d02430958e9ba9372f44dc91908fd3c95f18c339b" }, "downloads": -1, "filename": "mprpc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "314d07f48764ecddd028b0dc72e3863c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4917, "upload_time": "2013-10-15T04:18:49", "url": "https://files.pythonhosted.org/packages/f6/ba/28f21f3fff4634d40d0411ec1bc618a21acec1f564d788b6f0878a4602ec/mprpc-0.0.1.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "eddb28e52731be6deeee6b1057784e09", "sha256": "d078709da6a6eebc7f6c881d1d61c60e752dc700620546941bef7439d260c628" }, "downloads": -1, "filename": "mprpc-0.1.tar.gz", "has_sig": false, "md5_digest": "eddb28e52731be6deeee6b1057784e09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5939, "upload_time": "2013-10-15T12:09:57", "url": "https://files.pythonhosted.org/packages/c4/0a/8aba6a0f1718cd680f5f78e4b293086cb74865fd30b8a3ba6eb9aaa013c2/mprpc-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "986fc8aba2519f269b6b95b18edefae1", "sha256": "d0671dd3dc855b9747ee973627f7fbc100a866a088be5debd27a0d410a52bb31" }, "downloads": -1, "filename": "mprpc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "986fc8aba2519f269b6b95b18edefae1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68946, "upload_time": "2013-10-18T16:34:12", "url": "https://files.pythonhosted.org/packages/ec/d1/1ec56951a717a90fa9bcb1ab9786be2e8507367692226896b33c5b8cb837/mprpc-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "8c0c34e594ae707944b016864b5356cb", "sha256": "38b14a8f324394be28dd4f4a1428c8b41ec0815db74ee7bff11e597afb24882a" }, "downloads": -1, "filename": "mprpc-0.1.10.tar.gz", "has_sig": false, "md5_digest": "8c0c34e594ae707944b016864b5356cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83820, "upload_time": "2016-02-02T07:45:59", "url": "https://files.pythonhosted.org/packages/70/8c/365494a0e908ff6a9b375cabcfaecfa406a776d3875ab8c1c49554099f7c/mprpc-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "ed397428e16bef9e7aa3da7a9409aff2", "sha256": "945b40d09b1eb9dab93ebb92cd05a62533494e80f7e2e5e28124e1944bfffb1f" }, "downloads": -1, "filename": "mprpc-0.1.11.tar.gz", "has_sig": false, "md5_digest": "ed397428e16bef9e7aa3da7a9409aff2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84348, "upload_time": "2017-03-20T16:38:10", "url": "https://files.pythonhosted.org/packages/26/61/199f8287c71d848e21737f6a324a0db223081a1efcf08afc63719129d613/mprpc-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "817a9ac6f6b01ea07e17fcaf143dfba6", "sha256": "49443646945970170e6d29dfd185736f03683e58af2bf27f43e335bd0c3e2f41" }, "downloads": -1, "filename": "mprpc-0.1.12.tar.gz", "has_sig": false, "md5_digest": "817a9ac6f6b01ea07e17fcaf143dfba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85937, "upload_time": "2017-03-22T03:02:44", "url": "https://files.pythonhosted.org/packages/04/72/a84d9dc57b838be6b07cceb9b50b3155adb758278e98fec606aa4d899fd5/mprpc-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "449e6239eb5ff07b9cceb86e1ab0c2ee", "sha256": "5881cc7fbb8de814e2b4aa5958bfe147c5c301e46749190f0e6abf373cf56d82" }, "downloads": -1, "filename": "mprpc-0.1.13.tar.gz", "has_sig": false, "md5_digest": "449e6239eb5ff07b9cceb86e1ab0c2ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87131, "upload_time": "2017-04-05T13:12:57", "url": "https://files.pythonhosted.org/packages/2a/2e/b00c3e3c8457535fae47c7b08337d5d0f42d9d28ec4386a14204b56aa8cf/mprpc-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "66e6cf367ea71cfed8938a27e9c183c3", "sha256": "5ccada6526d48ac4d95a7bbdc093586663841560337032a503f57ccfae69d7bf" }, "downloads": -1, "filename": "mprpc-0.1.14.tar.gz", "has_sig": false, "md5_digest": "66e6cf367ea71cfed8938a27e9c183c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87127, "upload_time": "2017-04-11T09:48:17", "url": "https://files.pythonhosted.org/packages/da/f6/f1668c773f7aaed197f8747b840980aea4cd6e4014e22e88308f997c1d9a/mprpc-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "6bbcb74c111fcab04df71fa12496291d", "sha256": "c43a532e2fea164bdc93fc49dae141576bb26a2be49488223615d998db59ea27" }, "downloads": -1, "filename": "mprpc-0.1.15.tar.gz", "has_sig": false, "md5_digest": "6bbcb74c111fcab04df71fa12496291d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87279, "upload_time": "2017-10-16T01:33:14", "url": "https://files.pythonhosted.org/packages/1e/d4/e368a3f4e39597e740bb229cbb1aa186730e214241e372a96d36adb1a9e1/mprpc-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "acde1f346411997d76ab89790a356823", "sha256": "e8ddd47e7a2fb2d3b203fcc522443ee5be56c8f7e2c6d915c047445951cef1fb" }, "downloads": -1, "filename": "mprpc-0.1.16.tar.gz", "has_sig": false, "md5_digest": "acde1f346411997d76ab89790a356823", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87404, "upload_time": "2017-10-18T17:28:59", "url": "https://files.pythonhosted.org/packages/e0/c5/1eed437cc2e4025fc91c50a25a51589bc9f53eac251e5470465a74656ea0/mprpc-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "8d97961051422f3de315613434982d3b", "sha256": "3589fd127482e291b1ec314d6f0e55cc13311c12932ace356d6178ea1ca28f6a" }, "downloads": -1, "filename": "mprpc-0.1.17.tar.gz", "has_sig": false, "md5_digest": "8d97961051422f3de315613434982d3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116045, "upload_time": "2018-08-27T13:54:38", "url": "https://files.pythonhosted.org/packages/08/dd/87e7e3290c00e28423e46b483d288f13ddcc88bf71fd0677b619bdee32d3/mprpc-0.1.17.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "edc3177e1be773967d2f3fb4dd09e1d3", "sha256": "f74df59b537fb26e4b18baf6a423f8c321e57c348b3ebc4fde938ebd01ae723a" }, "downloads": -1, "filename": "mprpc-0.1.2.tar.gz", "has_sig": false, "md5_digest": "edc3177e1be773967d2f3fb4dd09e1d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70272, "upload_time": "2014-03-07T15:09:20", "url": "https://files.pythonhosted.org/packages/5e/09/8437001fc25b0cdb6956140a65c3f52e7f012ddacf5561abf184d4badfa0/mprpc-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "046e7cf298e8f6dda3740313d396ca28", "sha256": "2702ead8adb7a597916bc0cd1710ca663e3588dbe44df8d1b2923fee46fcea60" }, "downloads": -1, "filename": "mprpc-0.1.3.tar.gz", "has_sig": false, "md5_digest": "046e7cf298e8f6dda3740313d396ca28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70287, "upload_time": "2015-01-01T16:04:53", "url": "https://files.pythonhosted.org/packages/0e/b8/bcc94207715cd4382cb42c5dbb02581349776f632fd7580efee80a2ae800/mprpc-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f00a906398fc24058889ae957c982d97", "sha256": "2d3d95bd81a2560ef5adf464c943c001c1372630937d6aad050bc1b48dcc7926" }, "downloads": -1, "filename": "mprpc-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f00a906398fc24058889ae957c982d97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72752, "upload_time": "2015-01-03T07:42:39", "url": "https://files.pythonhosted.org/packages/73/62/08206b6aa8e54e8eeb6edf1869970b57649fd2983814f7de91c2659d555f/mprpc-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "33b8a743f9854a02b1a032a043a4331c", "sha256": "c9a36211561a89b3e06634d2bf5dcc95dbc9fae30b823ef4040f4869f19bd63d" }, "downloads": -1, "filename": "mprpc-0.1.5.tar.gz", "has_sig": false, "md5_digest": "33b8a743f9854a02b1a032a043a4331c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73796, "upload_time": "2015-09-02T14:29:22", "url": "https://files.pythonhosted.org/packages/2f/59/4f7adb69cf28c6f8cf0866be17e70581b98ac264c9496cd4f3dd9d6f58f3/mprpc-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "2ffba6635453f06429ec9bcd96c5dac6", "sha256": "230b018453094ce9f8a70572dde83c3a1f58381cfe6c92bd2adff41365fc9cd3" }, "downloads": -1, "filename": "mprpc-0.1.6.tar.gz", "has_sig": false, "md5_digest": "2ffba6635453f06429ec9bcd96c5dac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76443, "upload_time": "2015-10-12T16:51:15", "url": "https://files.pythonhosted.org/packages/4a/93/b4b415189e35030c97b4f017aed68d4bfbe7bfdcaa5e2b632c9ff8510ddf/mprpc-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "faf333ce93051fe53bdd3e855e29739b", "sha256": "29d149134bc91446aa0740ca9a6b7ee5d75c3526ab8b7f8acd81c94919ffeed4" }, "downloads": -1, "filename": "mprpc-0.1.7.tar.gz", "has_sig": false, "md5_digest": "faf333ce93051fe53bdd3e855e29739b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76434, "upload_time": "2015-10-12T17:19:23", "url": "https://files.pythonhosted.org/packages/ab/4a/8db22ba161348b76c2f1facb3f1882ff2e7d0f5b12f6faa52ed771787582/mprpc-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "ba72c1b4d1b0ae85ed240914aac2de85", "sha256": "10e764040cefe591f467cfec87ba8f20dd49276fc301035aaefed2ed69d9a7eb" }, "downloads": -1, "filename": "mprpc-0.1.8.tar.gz", "has_sig": false, "md5_digest": "ba72c1b4d1b0ae85ed240914aac2de85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82372, "upload_time": "2015-11-18T17:24:17", "url": "https://files.pythonhosted.org/packages/3d/b9/55397bf0782d53f1a6f4d683bbb0f56c9cf15459c859ef625a24c922343d/mprpc-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "3aff2d69df0c198c54921082db311609", "sha256": "b1b0ac7ee7acb6b4a8888434a2bef9d2790438e2410f4a79ce5f27e9e5900c90" }, "downloads": -1, "filename": "mprpc-0.1.9.tar.gz", "has_sig": false, "md5_digest": "3aff2d69df0c198c54921082db311609", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81450, "upload_time": "2016-01-16T15:32:09", "url": "https://files.pythonhosted.org/packages/01/22/111f632daf147fe9a34ed8878a66c428f962e9c8d9e6e71c55145dc06270/mprpc-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d97961051422f3de315613434982d3b", "sha256": "3589fd127482e291b1ec314d6f0e55cc13311c12932ace356d6178ea1ca28f6a" }, "downloads": -1, "filename": "mprpc-0.1.17.tar.gz", "has_sig": false, "md5_digest": "8d97961051422f3de315613434982d3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116045, "upload_time": "2018-08-27T13:54:38", "url": "https://files.pythonhosted.org/packages/08/dd/87e7e3290c00e28423e46b483d288f13ddcc88bf71fd0677b619bdee32d3/mprpc-0.1.17.tar.gz" } ] }