{
"info": {
"author": "Marc Kirchner",
"author_email": "mail@marc-kirchner.de",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "rivulet: A Redis-Based Message Broker for Python\n================================================\n\n.. image:: https://travis-ci.org/mkirchner/rivulet.png\n :target: https://travis-ci.org/mkirchner/rivulet\n :alt: Latest Travis CI build status\n\n.. image:: https://readthedocs.org/projects/rivulet/badge/?version=latest\n :target: https://rivulet.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nDocumentation: `Read the docs `_.\n\n\nQuickstart\n----------\n\n $ pip install rivulet\n\n\nNotes\n-----\n\nLimitations\n^^^^^^^^^^^\n\n* No balanced consumers (yet)\n* Without the proper management tools (see todos), managing messages is\n painful raw redis.\n\nTodos\n^^^^^\n\n* Extend testing\n\n * Connection drops\n * Parallel producers, consumers (stressing the locking setup)\n\n* Provies management functionality\n\n * list channels, delete channels\n * count, list, update subscribers\n * count, list, prune messages\n\n\nImplementation details\n^^^^^^^^^^^^^^^^^^^^^^\n\nData model:\n\n1. ``rvl:lock:``: Used to maintain locks across\n multi-step redis calls (in particular when sending a message using\n a server-issued, monotonically increasing message seq id).\n2. ``rvl:id:``: A counter providing sequence ids for\n messages in channel `channel_id`\n3. ``rvl:msg:``: ZSET that maps a packed JSON string\n to the message sed id (allowing range queries on messages over seq\n ids).\n4. ``rvl:channel:``: ZSET that maps a client id to the last\n message id in channel `channel_id` seen by the clinet\n5. ``rvl:index:``: ZSET that maps the channel_id to the last\n message id seen by client `client_id`",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/mkirchner/rivulet",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "rivulet",
"package_url": "https://pypi.org/project/rivulet/",
"platform": "",
"project_url": "https://pypi.org/project/rivulet/",
"project_urls": {
"Homepage": "https://github.com/mkirchner/rivulet"
},
"release_url": "https://pypi.org/project/rivulet/0.2.0/",
"requires_dist": null,
"requires_python": "",
"summary": "Redis-Based Message Broker for Python",
"version": "0.2.0"
},
"last_serial": 4667075,
"releases": {
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "9cb028d2c07788a33278d55987a2bedf",
"sha256": "af38715c8c0e1afc61a8a5f12373c72917d620b33fe5fc80eeeca8585bb916e2"
},
"downloads": -1,
"filename": "rivulet-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "9cb028d2c07788a33278d55987a2bedf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5602,
"upload_time": "2019-01-07T01:21:43",
"url": "https://files.pythonhosted.org/packages/4b/79/27ed894a2269ad5738bc4da6cf5158ae1f4b0e3a615695187c9de2de57b2/rivulet-0.1.1.tar.gz"
}
],
"0.1.1.dev1": [
{
"comment_text": "",
"digests": {
"md5": "3417a6854fb33a4935a8970729208968",
"sha256": "b370d4024bb2eebaf74fc16b1ff657c792136a2098616217ce7d0d150443a7de"
},
"downloads": -1,
"filename": "rivulet-0.1.1.dev1.tar.gz",
"has_sig": false,
"md5_digest": "3417a6854fb33a4935a8970729208968",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5255,
"upload_time": "2019-01-06T07:52:17",
"url": "https://files.pythonhosted.org/packages/39/9c/c315d90e8166fb7366b6867efc2aaf685671f36565adcc58ed000c8fc8aa/rivulet-0.1.1.dev1.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "eb198cc4b5d55b84783e10d086eba8bf",
"sha256": "2514977d1844b337263e080dbf14219118dc183e9c816fb01dafc970cf8caf31"
},
"downloads": -1,
"filename": "rivulet-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "eb198cc4b5d55b84783e10d086eba8bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5602,
"upload_time": "2019-01-07T01:27:50",
"url": "https://files.pythonhosted.org/packages/64/cd/fc2327d7c4a097d5adf19e20c78af130dab48fc857f7d5e00913a807c119/rivulet-0.2.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "eb198cc4b5d55b84783e10d086eba8bf",
"sha256": "2514977d1844b337263e080dbf14219118dc183e9c816fb01dafc970cf8caf31"
},
"downloads": -1,
"filename": "rivulet-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "eb198cc4b5d55b84783e10d086eba8bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5602,
"upload_time": "2019-01-07T01:27:50",
"url": "https://files.pythonhosted.org/packages/64/cd/fc2327d7c4a097d5adf19e20c78af130dab48fc857f7d5e00913a807c119/rivulet-0.2.0.tar.gz"
}
]
}