Skip to content
Zookeeper-like distributed server, WIP
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
test
.gitignore
.npmignore
LICENSE
README.md
package.json

README.md

SimpleKeeper

Zookeeper-like distributed server, WIP.

Installation

Via npm on Node:

npm install simplekeeper

Usage

Reference in your program:

var simplekeeper = require('simplekeeper');

In the current version (0.0.1) only local server is implemented, with two flavors: synchronous and asynchronous.

Synchronous Server

Create a server

var server = simplekeeper.createSyncServer('simplekeeper');

Get value

var value = server.getValue('/user/1/name');

Return null if path does not exist.

Set value

server.setValue('/user/1/name', 'adam');
server.setValue('/user/1/age', 800);

Get children

var names = server.getChildren('/user/1'); // ['name', 'age']

Delete node (and its children, if any)

server.delete('/user/1');

Exists node

server.exists('/user/1'); // false after deletoin

Invalid path (throws exceptions)

server.getValue(null);   // null
server.getValue(123);    // not a string
server.getValue('');     // empty string
server.getValue('foo');  // it does not start with /

Asynchronous Server

Create a server

var server = simplekeeper.createServer('simplekeeper');

Its functions are the same of a synchronous server, but with a callback. I.e.: Get Value

var value = server.getValue('/user/1/name', function (err, value) { ... } );

An asynchronous server can be exposed to other machines:

server.listen(port, host);

A remote client:

var client = simplekeeper.createClient(port, host, function (server) {
    // server is a reference to the remote server, with the same interface
    server.setValue('/user/1/name', 'Adam', callback);
});

Development

git clone git://github.com/ajlopez/SimpleKeeper.git
cd SimpleKeeper
npm install
npm test

Samples

TBD

To do

  • Samples
  • Set Leader
  • Distributed Server
  • Invalid path when it ends with /

Versions

  • 0.0.1: Published
  • 0.0.2: Under development, in master. Leader server. Distributed servers

Contribution

Feel free to file issues and submit pull requests — contributions are welcome.

If you submit a pull request, please be sure to add or update corresponding test cases, and ensure that npm test continues to pass.

Something went wrong with that request. Please try again.