{
"info": {
"author": "David Gidwani",
"author_email": "david.gidwani@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Operating System :: Unix",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities"
],
"description": "========\nproxenos\n========\n\n.. image:: https://img.shields.io/pypi/v/proxenos.svg\n :target: https://pypi.python.org/pypi/proxenos\n\n.. image:: https://img.shields.io/pypi/pyversions/proxenos.svg\n :target: https://pypi.python.org/pypi/proxenos\n\n.. image:: https://travis-ci.org/darvid/proxenos.svg?branch=master\n :target: https://travis-ci.org/darvid/proxenos\n\n.. image:: https://img.shields.io/coveralls/darvid/proxenos.svg\n :target: https://coveralls.io/github/darvid/proxenos\n\n.. image:: https://badges.gitter.im/python-proxenos/Lobby.svg\n :alt: Join the chat at https://gitter.im/python-proxenos/Lobby\n :target: https://gitter.im/python-proxenos/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\nA Python toolkit for Rendezvous/Highest Random Weight (HRW) hash based routing.\n\n.. code-block:: pycon\n\n >>> import proxenos.mappers.consul\n >>> import proxenos.rendezvous\n >>> mapper = proxenos.mappers.consul.ConsulClusterMapper(\n ... host='localhost', port=8500)\n >>> mapper.update()\n >>> mapper.cluster\n {SocketAddress(host=IPAddress('::'), port=8000),\n SocketAddress(host=IPAddress('::'), port=8001),\n SocketAddress(host=IPAddress('::'), port=8300),\n SocketAddress(host=IPAddress('::'), port=8500)}\n >>> mapper.select('github.com', proxenos.rendezvous.HashMethod.SIPHASH)\n SocketAddress(host=IPAddress('::'), port=8001)\n\n.. code-block:: shell\n\n $ proxenos select -b consul -h localhost -p 8500 github.com\n 0.0.0.0:8300\n\nFeatures\n========\n\n* Support for multiple service discovery backends possible. *Currently\n only support for Consul is implemented, but other backends coming\n eventually.*\n* Supports many different hash functions and PRFs. The default hashing\n method is the `SipHash `_ PRF.\n* Provides a command-line interface for quickly testing/debugging\n node selection.\n\nInstallation\n============\n\n.. code-block:: shell\n\n $ pip install proxenos\n $ # If you'd like Murmur3 support, use:\n $ pip install proxenos[murmur]\n\nNotes\n=====\n\n**proxenos** uses Python's PRNG for calculating the weight of nodes in\na cluster, rather than using a linear congruential generator (LCG_)\nas described in the `original paper on Rendezvous hashing`__. Seeded\nweights generated are limited to ``sys.maxsize``, which means the\nresulting weights will differ depending on the platform architecture.\n\n.. _LCG: https://en.wikipedia.org/wiki/Linear_congruential_generator\n.. _thaler_ravishankar_1996: http://www.eecs.umich.edu/techreports/cse/96/CSE-TR-316-96.pdf\n\n__ thaler_ravishankar_1996_\n\nSimilar projects\n================\n\n* `clandestined `_\n* `nikhilgarg28/rendezvous `_\n\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/darvid/proxenos",
"keywords": "",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "proxenos",
"package_url": "https://pypi.org/project/proxenos/",
"platform": "",
"project_url": "https://pypi.org/project/proxenos/",
"project_urls": {
"Homepage": "https://github.com/darvid/proxenos"
},
"release_url": "https://pypi.org/project/proxenos/0.0.3/",
"requires_dist": [
"attrs",
"consulate",
"netaddr",
"siphash",
"stevedore",
"typing; python_version<\"3.5\"",
"enum34; python_version==\"2.7\"",
"consulate; extra == 'consul'",
"mmh3; extra == 'murmur'"
],
"requires_python": "",
"summary": "proxenos: A rendezvous hashing and service routing toolkit.",
"version": "0.0.3"
},
"last_serial": 2596730,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "c31422037021016ca621314986914010",
"sha256": "1cf9b9c5baa59e2af4e874da84ea77769112361f27cd36b952039594932cc4da"
},
"downloads": -1,
"filename": "proxenos-0.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c31422037021016ca621314986914010",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 30823,
"upload_time": "2017-01-23T02:26:48",
"url": "https://files.pythonhosted.org/packages/d4/d6/499a00c8d9a7c63e600f3a1d0abd7d9653a16aafb737319dc669fe2f8873/proxenos-0.0.1-py2.py3-none-any.whl"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "648fa552250dca9bbaa23dfa8d5a1978",
"sha256": "06a24d159d609748343b9ef78aed33cbd8dd5e92c2a92d14ad596adf5b00d943"
},
"downloads": -1,
"filename": "proxenos-0.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "648fa552250dca9bbaa23dfa8d5a1978",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 31210,
"upload_time": "2017-01-24T12:43:22",
"url": "https://files.pythonhosted.org/packages/34/a7/d56cd6547cb68f599a5370e3c1b56e20fcb1a195d4351d219d6ec31d0caf/proxenos-0.0.2-py2.py3-none-any.whl"
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "cd61cd12ef9ee48ff882551997c879fe",
"sha256": "07f5d4adb852c9d88efaa9118987a0bf3c7fac3c6fbb2856de22c6e5a722dd4a"
},
"downloads": -1,
"filename": "proxenos-0.0.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd61cd12ef9ee48ff882551997c879fe",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 33404,
"upload_time": "2017-01-25T04:18:28",
"url": "https://files.pythonhosted.org/packages/da/cd/c082455bb19aff3bb48f548a867e185638e222ad038294ef312247cb62aa/proxenos-0.0.3-py2.py3-none-any.whl"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "cd61cd12ef9ee48ff882551997c879fe",
"sha256": "07f5d4adb852c9d88efaa9118987a0bf3c7fac3c6fbb2856de22c6e5a722dd4a"
},
"downloads": -1,
"filename": "proxenos-0.0.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd61cd12ef9ee48ff882551997c879fe",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 33404,
"upload_time": "2017-01-25T04:18:28",
"url": "https://files.pythonhosted.org/packages/da/cd/c082455bb19aff3bb48f548a867e185638e222ad038294ef312247cb62aa/proxenos-0.0.3-py2.py3-none-any.whl"
}
]
}