A synchronized data store between connected Node.js applications
JavaScript CoffeeScript Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
browser
example
src
test
.gitignore
.npmignore
.travis.yml
README.md
package.json

README.md

In Development


Peer Store

A peer-to-peer data store using dnode

Features

  • Fast
    • All data is transfered over dnode
    • Achieve about 1.2k replications/sec
  • Replicate mutating operations
  • Connections automatically recover
    • Status pings and reconnects are controlled by upnode
  • Create smart data buckets for control over replication
    • Prefills buckets with peer data
  • Implement your own bucket types
    • Default bucket type is a plain object (pure memory)
    • lru-cache bucket type is operational so you may set size and TTL.
    • LevelDB bucket type in progress...
  • Express session store built-in

Installation

npm install peer-store

Usage

Server A at 10.0.2.1:

var PeerStore = require("peer-store");

var store = new PeerStore({
  peers: ['10.0.2.2'];
});

store.set('foo',42);

Server B at 10.0.2.2:

var PeerStore = require("peer-store");

var store = new PeerStore({
  peers: ['10.0.2.1'];
});

store.set('bar',7);

On both Sever A and B:

store.getAll(function(data) {
  console.log(data); // { foo: 42, bar: 7 } 
});

Express/Conect session store

In addition to the above, do:

app.use(express.session({
  store: store.sessionStore(),
  secret: 'secr3t'
}));

Now all your sessions are magically shared

API

Todo...

Issues

dnode depends on node-gyp, so in order to npm install on Windows, you'll need to follow the node-gyp Installation guide. Unix and Mac requires python and make so it should just work.

Quick windows links:

Credits

Most of the work is being done by substack's dnode