@subspace/jump-consistent-hash
Version:
Jump consistent hash implementation in TypeScript
26 lines (19 loc) • 772 B
Markdown
# Jump-consistent hash implementation
Read https://arxiv.org/abs/1406.2294 for details, this package works with 64-bit/8-byte inputs in form of `Uint8Array`s.
## How to install
```
npm install @subspace/jump-consistent-hash
```
NOTE: Requires Node.js v12+ or modern browser with BigInt support
## How to use
TypeScript:
```typescript
import {randomBytes} from 'crypto';
import {jumpConsistentHash} from '@subspace/jump-consistent-hash';
const bucket = jumpConsistentHash(randomBytes(8), 10);
```
## API
### jumpConsistentHash.jumpConsistentHash(key: Uint8Array, numBuckets: number): number
Takes a key and number of buckets and returns bucket from range `[0, numBuckets)`.
* `key` - 8 bytes key
* `numBuckets` - number of buckets to which keys should be distributed