Implementation of the Jump Consistent Hash algorithm
Project description
Jump Consistent Hash
Python implementation of the jump consistent hash algorithm by John Lamping and Eric Veach[1]. Tested on Python 2.6, 2.7 and 3.4+.
Install
To install Jump Consistent Hash, simply run this simple command in your terminal of choice:
$ pip install jump-consistent-hash
Unless running PyPy the installation will try to compile the C++ reference implementation (unless an appropriate wheel is available). If it fails it will fallback to the pure Python implementation which is about 10x slower on CPython.
Usage
>>> import jump
>>> jump.hash(256, 1024)
520
If you want to use a str as a key instead of an int, you can pass it through a hash function to compute a real key. Here’s a couple of examples using Python 3:
>>> import hashlib
>>> int(hashlib.md5(b'127.0.0.1').hexdigest(), 16)
325870950296970981340734819828239218902
>>> int(hashlib.sha1(b"127.0.0.1").hexdigest(), 16)
431133456357828263809343936597625557575256328153
>>> import binascii
>>> binascii.crc32(b'127.0.0.1') & 0xffffffff
3619153832
>>> abs(hash('127.0.0.1'))
7536019783825143230
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for jump_consistent_hash-3.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e8b25c51e7038863070b46fd22a28a77f8c6358b5c6719de4698383b8326e43 |
|
MD5 | 51ef566b457d8eb8d13fb1f0eb0abc05 |
|
BLAKE2b-256 | 634f02c9ff6f8705d82934b8a6f05775983233a7bd01ea3a967a7a1108e38979 |
Hashes for jump_consistent_hash-3.0.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df695ed9ab1c0a02100c585541e3ec287045a2152e0c38181c667ea1d9f42f13 |
|
MD5 | d2100bfc19ae9281ce09fe59a466ff60 |
|
BLAKE2b-256 | 82a0799c5af9603c6a73909fc76164623e4df80859f5b2940117064bc4af1c9c |
Hashes for jump_consistent_hash-3.0.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82c1dbf5c191bde3c8fc650c6d62147beb36bd77114cd6c111733374279421c1 |
|
MD5 | a8ec41299c86825cd0541aafefc3fb52 |
|
BLAKE2b-256 | 103a956c933bcec493c2381d05182bf0a94fa1a5d1148982cbdc8f1797f0a213 |
Hashes for jump_consistent_hash-3.0.2-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 062ce7456b93a2bd9f7e5ebcd740504befd2e4d849f6ea2fb5d243daf4811136 |
|
MD5 | 8acfc0358ea2f3686c6edaf39382cdfb |
|
BLAKE2b-256 | 58e81cbfc6766a5d004d064204ef9d9d650fc7460c791418e8d254e2d2c5803c |
Hashes for jump_consistent_hash-3.0.2-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b37cc33ca3385fbac602d31a83c826101373265ed2aaed1ef93618f41b8c1e1 |
|
MD5 | 91637c49810bb0f054859bb38efbf1cc |
|
BLAKE2b-256 | 0dfcdde0f3b41e7fa13e1d26aba03c111f28da0e5dccccb021f8a827bc402835 |
Hashes for jump_consistent_hash-3.0.2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c606fd26a173bb765eb753f3b197b5123b1f64f3541b6da3bc8d939bdedd33c |
|
MD5 | 90c8732698fca750feac6285bd2187b3 |
|
BLAKE2b-256 | e5c205c534e4a474be1b58b9d9a6f1f0cf895c6999f08fa587562e8df21f48bb |
Hashes for jump_consistent_hash-3.0.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e1dbc71a0fd688f2ab75637180971388097ab7a8d63801bc6a012db66183e40 |
|
MD5 | ace34f1a0230971c31a7c92eee014c62 |
|
BLAKE2b-256 | 23fa0bb851266109f2664997280f2e7e9ccbccd5dcf942000d5b96d485d1edd2 |
Hashes for jump_consistent_hash-3.0.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d3d4576f44f9e252e7ed4246455e6f4885d9a67a74b0afd534a950b7872eb7a |
|
MD5 | cc295e8c70acc4d3f9062dcb0023bea9 |
|
BLAKE2b-256 | abf70f226bc42ffda51f9003b6a66867a722df9316210e1f7b907f12733a3c4e |
Hashes for jump_consistent_hash-3.0.2-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f854c73e7e92691f62fc9c95b704a29605131f6d80a2ab53ad15c3dba07baddc |
|
MD5 | 822cca7da6dfeb51ce35268eabfa5655 |
|
BLAKE2b-256 | ec9634a2c13a1c01feb860d81a2fb77f2f20c3478c8eedd7e3fd05fe22cf000a |
Hashes for jump_consistent_hash-3.0.2-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50b1316ad49526c4f91eaf5ba4722638fe1a2707720112715a6d27ac96403a7e |
|
MD5 | 0609c998f00edb41ecb4e469d75526a9 |
|
BLAKE2b-256 | 203caba4e440b632c0257d1395848361462c5a0055814076147a00c4fb75ddcc |
Hashes for jump_consistent_hash-3.0.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adb57df9bbde0d86904817efdd0e9af2e92753fd6cd28bdd4a2e00088ed9fe80 |
|
MD5 | c481536b112c18525b94ddaeaa57802d |
|
BLAKE2b-256 | 4ffbedf391b557edffb452ff61a832148bdc951e7c223dc080811cdaa5902447 |
Hashes for jump_consistent_hash-3.0.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f77f441a5e74d39dcf7131712c612f4ed1e8af17ad3efca994f674e0fc630cfc |
|
MD5 | 501191a3cccee9a8b4218fb1029af241 |
|
BLAKE2b-256 | f3aee16d2bc15dfb8e7f73652debcb4241d42edba77c63208aa5378aa28a1785 |
Hashes for jump_consistent_hash-3.0.2-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e54f09edae8df59fcefceffe0668ff6c4e52d25bf9d11b6d8b5a69368b01a051 |
|
MD5 | 345c50adf5524c791307e87371b30eb3 |
|
BLAKE2b-256 | b44e9ab3c54e7cd5df2ab83ee9a2d2458a94b4a5684d06887979330dc95c067a |
Hashes for jump_consistent_hash-3.0.2-cp34-cp34m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a6631bd0c575f71d5470a10c49bfbe6be25e314941a096bf32551fe31e53471 |
|
MD5 | 5de79bdb8acea6911fa3f35395684b6f |
|
BLAKE2b-256 | c2af67b82bd2735b45dbdf01d167b3f418a7fc48ae4f4f2e263f759b4d215a40 |
Hashes for jump_consistent_hash-3.0.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28a8f779ffcaaab4506a8244b4485dbc2d71c56bbf2240779fb2057841e2c0b6 |
|
MD5 | 5acc88842d1a7878edbdf4f5286ed6e7 |
|
BLAKE2b-256 | 54e7edbb23d0a05747ec06fdb4666c03b6a940b38f3efe955fb2c969130bfdd9 |
Hashes for jump_consistent_hash-3.0.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 595dc3f76b629fead516a47fcf2a2ebfeb7053f9ac92e9e9bf974da09e365403 |
|
MD5 | 91828239e24fa48fb8e4cb09fc5f3990 |
|
BLAKE2b-256 | 98a68a03a0cf7d6ec8aaaa98e8b41c372b209cc6060c2a604758afcaea30fc23 |
Hashes for jump_consistent_hash-3.0.2-cp34-cp34m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2d9e8c8161e010a6c6846b0d64ebc7e71a19b3c3deab0e52a67c266db014c09 |
|
MD5 | f81ae543ec3ac2c7b13c692e3e197cd0 |
|
BLAKE2b-256 | 65af3ea2351f61d80f21b20c6dfab344cfac30902363203b7483cf191e53331d |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5925b4966a8a526dd720a4edc8c27ec6a855859753e03b1c17939e7632ef5edf |
|
MD5 | aef709216f702f11353206b320f1bb37 |
|
BLAKE2b-256 | 37b699391a522d0ec37772d73818c6e60a9bb58d1fd325eb16df6af4e4bbedc5 |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5dd5318834e05caafa824111733448c0581252e405bf27ea95c2f9325d04b2c |
|
MD5 | cdc31f6bb0eba5b7f91bc78762d3fa3d |
|
BLAKE2b-256 | c3f648af8e407157f001908c50cc3ae8007d3a51f1fdd941d588f24b1623106b |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adf269d0d783d6a132c063fe795b1c78adb1cff0caf5c8b37fccf10692665a2f |
|
MD5 | a84c4e450596cdd49cb6b5adf9d28e5c |
|
BLAKE2b-256 | 9120be650880fa98089c3df157d042dbeded835a74ccc6a59a2603a06de5bd4f |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e41e9d6e7b9fe6a18ceeafa62417553528c9524829f95ef70cbfafc11fdc015 |
|
MD5 | 648ff88fa754b381344723ce0599c0af |
|
BLAKE2b-256 | 4110cc0b646dfa17c12b7152c4035d9ca46f3caa3f2f1464a5a195a7a33a1f2a |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c16b861c718795abf1c2483150322107ef3f4ec923ba8dba508f698fc60e8b73 |
|
MD5 | bb19b6836e4c7fb51a4d90fa6d844df0 |
|
BLAKE2b-256 | 2bd06a8148ba3264ed78bf9febc48e71588d66821b48dbc045a2a285b7af63eb |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d96494e228282ba85736bade4cb8fca705257311d205c6548596977c2550401 |
|
MD5 | 1aac84f5f3a687e8bd7c6d4d31b98f5c |
|
BLAKE2b-256 | 309dc919cdfdb69ffa5488dab16bc5761fdbe2c511f551479f6b408a2fd39300 |
Hashes for jump_consistent_hash-3.0.2-cp27-cp27m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd158404fbac0a306d7aaf1a79e6f0e9c864e29b830f770f629de44e6b749b4b |
|
MD5 | a47ee1b7527a126c81710506f4c3acdd |
|
BLAKE2b-256 | 7195040afe5198ef3e73140f93f33eb93db5477bdc76106b742e18e783264bde |