Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dakatsuka/node-consistent-hashing
A pure JavaScript implementation of Consistent Hashing
https://github.com/dakatsuka/node-consistent-hashing
Last synced: about 2 months ago
JSON representation
A pure JavaScript implementation of Consistent Hashing
- Host: GitHub
- URL: https://github.com/dakatsuka/node-consistent-hashing
- Owner: dakatsuka
- License: mit
- Created: 2011-08-13T20:18:41.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2023-07-04T05:19:29.000Z (about 1 year ago)
- Last Synced: 2024-07-26T21:55:57.613Z (about 2 months ago)
- Language: JavaScript
- Homepage: https://github.com/dakatsuka/node-consistent-hashing
- Size: 123 KB
- Stars: 72
- Watchers: 4
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-consistent-hashing [![Build Status](https://travis-ci.org/dakatsuka/node-consistent-hashing.svg)](https://travis-ci.org/dakatsuka/node-consistent-hashing) [![npm version](https://badge.fury.io/js/consistent-hashing.svg)](https://badge.fury.io/js/consistent-hashing)
A pure JavaScript implementation of Consistent Hashing for Node.js.
## Installation
```
$ npm install consistent-hashing
```## Usage
```javascript
var ConsistentHashing = require('consistent-hashing');
var cons = new ConsistentHashing(["node1", "node2", "node3"]);var nodes = {};
var chars = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
];chars.forEach(function(c) {
var node = cons.getNode(c);if (nodes[node]) {
nodes[node].push(c);
} else {
nodes[node] = [];
nodes[node].push(c);
}
});console.log(nodes);
// { node3: [ 'A', 'F', 'H', 'J', 'N', 'S', 'U', 'W', 'X' ],
// node1: [ 'B', 'C', 'E', 'G', 'L', 'M', 'Q', 'R', 'V', 'Y', 'Z' ],
// node2: [ 'D', 'I', 'K', 'O', 'P', 'T' ] }
```add nodes:
```javascript
cons.addNode("node4");
```remove node:
```javascript
cons.removeNode("node1");
```## Copyright
Copyright (C) 2011-2015 Dai Akatsuka, released under the MIT License.