{ "info": { "author": "aohan237", "author_email": "aohan237@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Distributed Computing" ], "description": "# SimRpc\n\n[![Downloads](https://pepy.tech/badge/simrpc)](https://pepy.tech/project/simrpc)\n\n## Why SimRpc\n\nall of the popular rpc framework today, is fast and stable.\n\nbut it is kind of not good enough for you to easily start.\nyou have to accept all the rpc's definition,learn their structure, and you have to adapt your code to them.\n\nso if you dont like them,and you havn't have other alternatives. may be **SimRpc** is suit for you\n\n## Intruction\n\nSimRpc is an rpc tools for you to easily transfer your code to rpc service(both client-side and server-side),built on top of zeromq and msgpack.\n\n\n* **zeromq**\n\n assures the message transfer extremely fast and stable\n\n* **msgpack**\n\n enables the message blazing small\n\n## Usage\n\n### Your Original Code\n\n``` python\nclass a:\n def minus(self, x, y):\n print(\"x+y=\", x - y)\n return x - y\ndef add(x, y):\n return x + y\n```\n\n### Client Side\n\n#### 1) start an client instance\n\n``` python\nfrom simrpc.client import SimRpcClient\nrpc_client = SimRpcClient()\n```\n\nor maybe you want to start a specific address\n\n``` python\nfrom simrpc.client import SimRpcClient\nrpc_client = SimRpcClient(server_address=\"tcp://localhost:6666\")\n```\n\nthe **server_address** is a zeromq address.\n\nfor more information you can refer to **[zeromq](http://zeromq.org/)**.\n\n#### 2) add @rpc_client.task decorator to your code\n\n``` python\n\n# response_only=True means you only want the result\n\nclass a:\n\n @rpc_client.task(response_only=True)\n def minus(self, x, y):\n print(\"x+y=\", x - y)\n return x - y\n\n# func=True means this is a funcion,not a class service\n\n@rpc_client.task(response_only=True,func=True)\ndef add(x, y):\n return x + y\n```\n\n#### 3) Use these functions as usual\n\n```python\na().minus(4,5,rpc_client=True)\n```\n**you must point it out this a rpc client(as use rpc_client=True prameter), otherwise will use local code**\n\n### Server Side\n\n#### 1) start an server instance\n\n```python\nfrom server import SimRpcServer\nserver = SimRpcServer()\n```\n\nlike client,you can also give specific addresses to server.\n\nparameter|value|instruction\n-|-|-\ndevice_front_address|\"tcp://127.0.0.1:5559\"|address that receive message. used for client to connect.\ndevice_backend_address|\"tcp://127.0.0.1:5560\"|address that send message to service worker.\nworker_address|\"tcp://127.0.0.1:5560\"|address that worker connect to. usually the same with device_backend_address.for advanced infomation,you can refer to zeromq\n\n**more ways of address(like ipc) are supported, you can refer to zeromq**\n\n#### 2) register your service to server\n\n* initial your class service as usual\n\n```python\nservice = a()\nserver.register(service)\n```\n\n* or you let server to initial your service(just pass your init arguments to server.)\n\n```python\nsettings = {\n \"a\": {\n \"kwargs\": {\n \"name\": \"test\"\n }\n }\n}\nservice = a()\nserver.register(service)\n# or you can have this class init with server\n# server.register_with_init(cls_list=[a], settings=settings)\n```\n\n#### 3) start your rpc server broker\n\n```python\nserver.start_broker()\n# if you also want to start worker in process ,you could use server.run(),this will start a few workers.\n\n# server.run()\n```\n\n**with this broker,you can easily expand your service from both client-side and server-side**\n\n#### 4) start more workers\n\n```python\n# the same as above but without server.start_broker()\nserver.run()\n```\n\n### For details,you can refer to examples\n\n## Dependence\n\n* **[Zeromq](http://zeromq.org/)**\n* **[Msgpack](https://msgpack.org/index.html)**\n\n## Coding\n\n* **like this project, star it**\n* **any suggestion is welcome**\n* **this project is under MIT lisense**\n\nmore docs are writing.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aohan237/simrpc", "keywords": "rpc asyncio zeromq msgpack", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "simrpc", "package_url": "https://pypi.org/project/simrpc/", "platform": "any", "project_url": "https://pypi.org/project/simrpc/", "project_urls": { "Homepage": "https://github.com/aohan237/simrpc" }, "release_url": "https://pypi.org/project/simrpc/1.3.0/", "requires_dist": [ "pyzmq (>=17.1.2)", "msgpack (>=0.5.6)" ], "requires_python": "", "summary": "README.md", "version": "1.3.0" }, "last_serial": 5301473, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "c1a9a310310c6504c81ab3dc5562eaf6", "sha256": "395d0b7883eebd6d0b774e0340e725897f50ffbddaf4a91e9baa002ad0038c5a" }, "downloads": -1, "filename": "simrpc-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c1a9a310310c6504c81ab3dc5562eaf6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6690, "upload_time": "2018-09-30T06:59:14", "url": "https://files.pythonhosted.org/packages/f9/ba/ca5a9a9e46f49e98aaf057b16101313de203cbbc49da441dbc6dd70c9741/simrpc-1.0.0-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4283665b8ee27475239f663f907f4cdd", "sha256": "368e6d92dd8b8aae185b0fffb08b01a9a4798a8b9da69dd1ba3de5a9664596c7" }, "downloads": -1, "filename": "simrpc-1.1.0.tar.gz", "has_sig": false, "md5_digest": "4283665b8ee27475239f663f907f4cdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6265, "upload_time": "2018-10-29T07:07:09", "url": "https://files.pythonhosted.org/packages/c4/a3/e1b90aa09a9bcaf1387650dd08ac6109c767fcfc1ca76cfb6895fafbc9a1/simrpc-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "c5cc2abcfcd4124815926dc8720b3a87", "sha256": "78d9a1dfd10a470f255c8cb33d2ae5291868a8e64d2a1d025b8d58fbfdb81202" }, "downloads": -1, "filename": "simrpc-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c5cc2abcfcd4124815926dc8720b3a87", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6063, "upload_time": "2018-11-14T07:24:15", "url": "https://files.pythonhosted.org/packages/5c/83/2b0399a0994a592669daf9aa88bab80c331d0a27f5c4b3fb1f629efac351/simrpc-1.1.1-py2-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0b3088564619216183b4882e22d40b37", "sha256": "f92df5141bc1f5bd7d0b05fa37eae7ec7e4142cee35db4df61a8a5346b962c71" }, "downloads": -1, "filename": "simrpc-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0b3088564619216183b4882e22d40b37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7191, "upload_time": "2018-11-27T14:27:37", "url": "https://files.pythonhosted.org/packages/6c/62/49854a4910dabfa6c5ef8ebd40de325fe5a8d6360334dd9ff5149d73142d/simrpc-1.2.0-py3-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "6da11f08fd977401e5ef98966da66724", "sha256": "582d49900661f22033d04a3040dd139980b8d279c55263904730216e1a0da210" }, "downloads": -1, "filename": "simrpc-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6da11f08fd977401e5ef98966da66724", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7229, "upload_time": "2018-11-27T14:36:16", "url": "https://files.pythonhosted.org/packages/f6/49/618c99fad7710401deed9ad77a031155e0e4b67ac2aaf3145632ab0218e6/simrpc-1.2.1-py3-none-any.whl" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "5bf92b68bd45332b7ea6fbeac06c75b4", "sha256": "c638ea41550d1041e4f28749e8867712c401151959148f05510f5051627086cd" }, "downloads": -1, "filename": "simrpc-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5bf92b68bd45332b7ea6fbeac06c75b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7243, "upload_time": "2019-02-28T06:40:29", "url": "https://files.pythonhosted.org/packages/bf/7a/f4b9b44d7e9ea45e09d29a5f52ac943b919e9b4b3626fbb27e1900e23c07/simrpc-1.2.3-py3-none-any.whl" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "57b6b9a625816d1686184a96935fedaa", "sha256": "4f71f6a555cff607c72c2b9e97a991da7c4c5a48a981c1f8d0f73e061ccc5eca" }, "downloads": -1, "filename": "simrpc-1.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "57b6b9a625816d1686184a96935fedaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7369, "upload_time": "2019-04-13T10:35:21", "url": "https://files.pythonhosted.org/packages/74/61/ba0b5b26f042d15cf7c2ce6c2da5456d636682bca4a7fd4a9d9e7d7c82d6/simrpc-1.2.4-py3-none-any.whl" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "54178bb8a33721b068935102c687d031", "sha256": "1dfdbef25460fd52d237ac72aaa552296c9c1669bca9b0da5f45444194f10ae9" }, "downloads": -1, "filename": "simrpc-1.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "54178bb8a33721b068935102c687d031", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7551, "upload_time": "2019-04-13T15:46:07", "url": "https://files.pythonhosted.org/packages/d9/2b/21758ddbbae08654326d6c267629e08417bf813be1c60bab2c78514ac101/simrpc-1.2.5-py3-none-any.whl" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "17ff23cdb9e28a533a60e805c11a1108", "sha256": "716a52a418d209bdf9b9f2d42e461c7d2b14615072c95c81c639ec523cbd661e" }, "downloads": -1, "filename": "simrpc-1.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "17ff23cdb9e28a533a60e805c11a1108", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7625, "upload_time": "2019-04-15T05:24:42", "url": "https://files.pythonhosted.org/packages/cc/17/faf68f132d0df434ec1646886a3ceb0e8232f655be752b090bc6f634418f/simrpc-1.2.6-py3-none-any.whl" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "c1689089b7fa60900985a81c741c1e25", "sha256": "da410b399c64bbaf0aced6a3b53e76bfa348b18443d7c31ca41909133e97819c" }, "downloads": -1, "filename": "simrpc-1.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c1689089b7fa60900985a81c741c1e25", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7844, "upload_time": "2019-05-20T07:36:10", "url": "https://files.pythonhosted.org/packages/46/c9/e19c3f43f6b479169b6b136d0fb6cf2a4fb292607168b064b29c4d0a49c2/simrpc-1.2.7-py3-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "225981ab891299e2200b47817de62cd3", "sha256": "360c3fa6bc7613450889c7d2ff339ddc7d46984c86bab857f800fa57cc69b4ef" }, "downloads": -1, "filename": "simrpc-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "225981ab891299e2200b47817de62cd3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7973, "upload_time": "2019-05-22T08:07:18", "url": "https://files.pythonhosted.org/packages/af/62/0c18547d219839c045fcdb48054c7a250734a81b42bf3b239cd5225f31f7/simrpc-1.3.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "225981ab891299e2200b47817de62cd3", "sha256": "360c3fa6bc7613450889c7d2ff339ddc7d46984c86bab857f800fa57cc69b4ef" }, "downloads": -1, "filename": "simrpc-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "225981ab891299e2200b47817de62cd3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7973, "upload_time": "2019-05-22T08:07:18", "url": "https://files.pythonhosted.org/packages/af/62/0c18547d219839c045fcdb48054c7a250734a81b42bf3b239cd5225f31f7/simrpc-1.3.0-py3-none-any.whl" } ] }