proxenos 0.0.3

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

proxenos 0.0.3

A Python toolkit for Rendezvous/Highest Random Weight (HRW) hash based routing.
>>> import proxenos.mappers.consul
>>> import proxenos.rendezvous
>>> mapper = proxenos.mappers.consul.ConsulClusterMapper(
... host='localhost', port=8500)
>>> mapper.update()
>>> mapper.cluster
{SocketAddress(host=IPAddress('::'), port=8000),
SocketAddress(host=IPAddress('::'), port=8001),
SocketAddress(host=IPAddress('::'), port=8300),
SocketAddress(host=IPAddress('::'), port=8500)}
>>> mapper.select('github.com', proxenos.rendezvous.HashMethod.SIPHASH)
SocketAddress(host=IPAddress('::'), port=8001)
$ proxenos select -b consul -h localhost -p 8500 github.com
0.0.0.0:8300

Features

Support for multiple service discovery backends possible. Currently
only support for Consul is implemented, but other backends coming
eventually.
Supports many different hash functions and PRFs. The default hashing
method is the SipHash PRF.
Provides a command-line interface for quickly testing/debugging
node selection.



Installation
$ pip install proxenos
$ # If you'd like Murmur3 support, use:
$ pip install proxenos[murmur]


Notes
proxenos uses Python’s PRNG for calculating the weight of nodes in
a cluster, rather than using a linear congruential generator (LCG)
as described in the original paper on Rendezvous hashing. Seeded
weights generated are limited to sys.maxsize, which means the
resulting weights will differ depending on the platform architecture.


Similar projects

clandestined
nikhilgarg28/rendezvous

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.