{ "info": { "author": "manatlan", "author_email": "manatlan@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "# redys\n\nA simple redis-like in pure python3, fully asyncio/thread/process compliant !\n\n[on pypi/redys](https://pypi.org/project/redys/)\n\n### features\n\n- asyncio compliant\n- client Sync (Client) & Async (AClient)\n- very quick\n- `classics` commands : get/set/delete/keys & incr/decr\n- `sets` commands : sadd/srem\n- `queue` commands : rpush/lpush/rpop/lpop\n- `pubsub` commands : subscribe/unsubscribe/get_event & publish\n- `cache` commands : setex\n- `ping` command ;-)\n- exchange everything that is pickable (except None)\n- raise real python exception in client side\n- minimal code size\n- works well on GAE Standard (2nd generation/py37)\n- unittests are autonomous (it runs a server)\n- just in-memory !\n\n### why ?\n\nRedis is great, but overbloated for my needs. Redys is simple, you can start\nthe server side in an asyncio loop, and clients can interact with a simple\nin-memory db. Really useful when clients are in\nasync/threads/process(workers)/multi-hosts world, to share a unique source of truth.\n\n### nb\n\n- The sync client (`Client`) use threads, so it can't live in the same loop as the server (`Server`). It's better to use it in another thread or process.\n- The async client (`AClient`) can live in the same loop as the server (`Server`), but don't forget to await each methods (which are coroutines in async version)\n- Not fully/concurrency tested. Use at own risk ;-)\n- See [tests](https://github.com/manatlan/redys/blob/master/tests.py) for examples\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/manatlan/redys", "keywords": "python3,redis,pickle,asyncio,queue,cache,set,pubsub,sync,async", "license": "", "maintainer": "", "maintainer_email": "", "name": "redys", "package_url": "https://pypi.org/project/redys/", "platform": "", "project_url": "https://pypi.org/project/redys/", "project_urls": { "Homepage": "https://github.com/manatlan/redys" }, "release_url": "https://pypi.org/project/redys/0.9.5/", "requires_dist": null, "requires_python": "", "summary": "A simple redis-like in pure python3, fully asyncio compliant", "version": "0.9.5" }, "last_serial": 4517828, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "671f53b806d2de3e1842721e4d264adb", "sha256": "9bdee8b4f93053e3b2db172b67a631a8a8c369a3e3866a16c6c646b288325bed" }, "downloads": -1, "filename": "redys-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "671f53b806d2de3e1842721e4d264adb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5303, "upload_time": "2018-11-20T17:54:19", "url": "https://files.pythonhosted.org/packages/3d/88/b6290f0afcab5cc1d51ec41c1e7e14f9d1f81024c13367c901e248c89085/redys-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e18e5d89e404015562c1b5e204fe15d", "sha256": "62bb2786949c7e15e475c3e2d3b9234f15ee79de9dd118d8b5f61e5fcb073386" }, "downloads": -1, "filename": "redys-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8e18e5d89e404015562c1b5e204fe15d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3772, "upload_time": "2018-11-20T17:54:21", "url": "https://files.pythonhosted.org/packages/d1/70/b90cac4ace52f0ab768eeb41ff638bc3c68e2b34c22d3340821304f1073b/redys-0.9.0.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "f256f3aa0b4e2cf963a061751d00d573", "sha256": "409d69e0fa4d558c17646362d17e4924ad64398c172749919980b650860bd355" }, "downloads": -1, "filename": "redys-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f256f3aa0b4e2cf963a061751d00d573", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5386, "upload_time": "2018-11-20T22:00:36", "url": "https://files.pythonhosted.org/packages/51/59/95f53cf6c6602dc0978d94664d9823d856916379accbfbe881f779a5f358/redys-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e3031e8bcdaf05a4e8ef7b2b832988b", "sha256": "72197842d3baa274f559cb8b915e27e792a5e3b59ef051d556cb9c6709e9e04b" }, "downloads": -1, "filename": "redys-0.9.3.tar.gz", "has_sig": false, "md5_digest": "1e3031e8bcdaf05a4e8ef7b2b832988b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3836, "upload_time": "2018-11-20T22:00:38", "url": "https://files.pythonhosted.org/packages/64/80/90ca63e800382a2ddf8f46eea7c3978ab7302d1afa89af62348943765415/redys-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "0410dcb63b094cf476ae2a1d1f28073f", "sha256": "2382fa2d80d3a61485c44b86f772009ec8383b4370837a10eff49c5c00ccd1f2" }, "downloads": -1, "filename": "redys-0.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0410dcb63b094cf476ae2a1d1f28073f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5789, "upload_time": "2018-11-21T16:50:15", "url": "https://files.pythonhosted.org/packages/70/d9/28d922bf018b7f9773557e0f88f5c883daf71aac4f3d180d598d07e45819/redys-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bc45576e85094744dcd818271724179", "sha256": "427671c291e19fda87aca8d7659e097b41959a1487ac34b3d4b4362ce08671a5" }, "downloads": -1, "filename": "redys-0.9.4.tar.gz", "has_sig": false, "md5_digest": "6bc45576e85094744dcd818271724179", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4027, "upload_time": "2018-11-21T16:50:16", "url": "https://files.pythonhosted.org/packages/5e/fe/bf19c56398f396a46e29642fb18469b51347de5a09edb092f1dd95d68a3f/redys-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "618eacfe812dcdec2a60e133a201a682", "sha256": "5036eb0093d0bdd702abdc46f182f82e0835f327665126445e4a4fc2411ce616" }, "downloads": -1, "filename": "redys-0.9.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "618eacfe812dcdec2a60e133a201a682", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5810, "upload_time": "2018-11-22T17:15:51", "url": "https://files.pythonhosted.org/packages/59/bd/d54c564321ab0fddc6d2a7ccd664387351e68a1d599120df39f36c4d1298/redys-0.9.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13f0ab75cf74d536d6b60249b9463240", "sha256": "514d71f7cf73d0447e74639a1362c9dcc6a6c75da6b5380e6513e828d86676e4" }, "downloads": -1, "filename": "redys-0.9.5.tar.gz", "has_sig": false, "md5_digest": "13f0ab75cf74d536d6b60249b9463240", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4061, "upload_time": "2018-11-22T17:15:52", "url": "https://files.pythonhosted.org/packages/30/0e/202844db764c87fb65869a0db512af1a88d429262375c0e9a9aca4819c31/redys-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "618eacfe812dcdec2a60e133a201a682", "sha256": "5036eb0093d0bdd702abdc46f182f82e0835f327665126445e4a4fc2411ce616" }, "downloads": -1, "filename": "redys-0.9.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "618eacfe812dcdec2a60e133a201a682", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5810, "upload_time": "2018-11-22T17:15:51", "url": "https://files.pythonhosted.org/packages/59/bd/d54c564321ab0fddc6d2a7ccd664387351e68a1d599120df39f36c4d1298/redys-0.9.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13f0ab75cf74d536d6b60249b9463240", "sha256": "514d71f7cf73d0447e74639a1362c9dcc6a6c75da6b5380e6513e828d86676e4" }, "downloads": -1, "filename": "redys-0.9.5.tar.gz", "has_sig": false, "md5_digest": "13f0ab75cf74d536d6b60249b9463240", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4061, "upload_time": "2018-11-22T17:15:52", "url": "https://files.pythonhosted.org/packages/30/0e/202844db764c87fb65869a0db512af1a88d429262375c0e9a9aca4819c31/redys-0.9.5.tar.gz" } ] }