{ "info": { "author": "Quanyong Huang", "author_email": "quanyongh@foxmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# PyEasyRPC\n[![Build Status](https://travis-ci.com/wo1fsea/PyEasyRPC.svg?branch=master)](https://travis-ci.com/wo1fsea/PyEasyRPC)\n[![codecov](https://codecov.io/gh/wo1fsea/PyEasyRPC/branch/master/graph/badge.svg)](https://codecov.io/gh/wo1fsea/PyEasyRPC)\n\nPyEaseRPC is a Python RPC framework easy to use, which using Redis as backend.\n\n## Example\n### Server\n\n```\n# example_server.py\nfrom pyeasyrpc.rpc import remote_method\nfrom pyeasyrpc.rpc import RPCService\n\n\nclass ServiceInstance(RPCService):\n @remote_method\n def add(self, a, b):\n return a + b\n\n @remote_method\n def sub(self, a, b):\n return a - b\n\n @remote_method\n def make_dict(self, **kwargs):\n return dict(kwargs)\n\n @remote_method\n def make_list(self, *args):\n return list(args)\n\n\ndef main():\n instance0 = ServiceInstance(process_request_in_thread=True)\n instance0.start_background_running()\n\n input(\"press any key to stop\")\n\n instance0.stop_background_running()\n\n\nif __name__ == '__main__':\n main()\n\n```\n\n## Client\n\n```\n# example_client.py\nfrom pyeasyrpc.rpc import RPCClient\n\n\ndef main():\n client = RPCClient(\"ServiceInstance\")\n print(\"method_list\", client.get_methods())\n\n print(\"add\", client.add(1, 2))\n print(\"sub\", client.sub(100, 1.1))\n print(\"make_dict\", client.make_dict(a=1, b=2, c=3))\n print(\"make_list\", client.make_list(1, [2], {3}))\n\n try:\n client.add()\n except Exception as ex:\n print(type(ex), ex)\n\n\nif __name__ == '__main__':\n main()\n```\n\n### Async Client\n\n```\n# example_client_async.py\n\nimport asyncio\nfrom pyeasyrpc.rpc import AsyncRPCClient\n\n\ndef main():\n client = AsyncRPCClient(\"ServiceInstance\")\n print(\"method_list\", client.get_methods())\n\n async def add():\n print(\"add\", await client.add(1, 2))\n\n async def sub():\n print(\"sub\", await client.sub(100, 1.1))\n\n async def make_dict():\n print(\"make_dict\", await client.make_dict(a=1, b=2, c=3))\n\n async def make_list():\n print(\"make_list\", await client.make_list(1, [2], {3}))\n\n async def catch_exception():\n try:\n await client.add()\n except Exception as ex:\n print(type(ex), ex)\n\n async def func():\n task = [add(), sub(), make_list(), make_dict(), catch_exception()]\n # task.extend([add() for i in range(100)])\n # task.extend([sub() for i in range(100)])\n # task.extend([make_list() for i in range(100)])\n # task.extend([make_dict() for i in range(100)])\n # task.extend([catch_exception() for i in range(100)])\n await asyncio.wait(task)\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(func())\n\n\nif __name__ == '__main__':\n main()\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/wo1fsea/PyEasyRPC/releases/tag/v0.0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wo1fsea/PyEasyRPC", "keywords": "rpc-framework,redis", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyeasyrpc", "package_url": "https://pypi.org/project/pyeasyrpc/", "platform": "", "project_url": "https://pypi.org/project/pyeasyrpc/", "project_urls": { "Download": "https://github.com/wo1fsea/PyEasyRPC/releases/tag/v0.0.1", "Homepage": "https://github.com/wo1fsea/PyEasyRPC" }, "release_url": "https://pypi.org/project/pyeasyrpc/0.0.1/", "requires_dist": [ "msgpack-python", "shortuuid", "redis" ], "requires_python": "", "summary": "a Python RPC framework using redis", "version": "0.0.1" }, "last_serial": 5677801, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "528babefda8db70d236fe96b3dd44fe8", "sha256": "9d6362a7c9b6c1fa4864d564d78ba4d93c2044417a24562e71c4168226c2dde6" }, "downloads": -1, "filename": "pyeasyrpc-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "528babefda8db70d236fe96b3dd44fe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23856, "upload_time": "2019-08-14T16:02:37", "url": "https://files.pythonhosted.org/packages/66/95/9e4ab1fd646d340a14d4a69ba139be3458370633698e38893f42b1b8f90a/pyeasyrpc-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b2a3d4b7b39a89d48dad4598f7f7e05", "sha256": "107086074e1642b8b629596b0be4c382993b9c577f1c2e34086daaa04ef90349" }, "downloads": -1, "filename": "pyeasyrpc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6b2a3d4b7b39a89d48dad4598f7f7e05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15032, "upload_time": "2019-08-14T16:02:39", "url": "https://files.pythonhosted.org/packages/44/3d/2ba91e3c39040a3862c73542cca6a518898042947c5552948961125e578c/pyeasyrpc-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "528babefda8db70d236fe96b3dd44fe8", "sha256": "9d6362a7c9b6c1fa4864d564d78ba4d93c2044417a24562e71c4168226c2dde6" }, "downloads": -1, "filename": "pyeasyrpc-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "528babefda8db70d236fe96b3dd44fe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23856, "upload_time": "2019-08-14T16:02:37", "url": "https://files.pythonhosted.org/packages/66/95/9e4ab1fd646d340a14d4a69ba139be3458370633698e38893f42b1b8f90a/pyeasyrpc-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b2a3d4b7b39a89d48dad4598f7f7e05", "sha256": "107086074e1642b8b629596b0be4c382993b9c577f1c2e34086daaa04ef90349" }, "downloads": -1, "filename": "pyeasyrpc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6b2a3d4b7b39a89d48dad4598f7f7e05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15032, "upload_time": "2019-08-14T16:02:39", "url": "https://files.pythonhosted.org/packages/44/3d/2ba91e3c39040a3862c73542cca6a518898042947c5552948961125e578c/pyeasyrpc-0.0.1.tar.gz" } ] }