node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org »



Connect a cluster on a single machine. One node starts a server on a given port, but if the address is in use, become a client, and connect to that port instead.

Also, if the current server goes down, another node will become the server.

If running in the browser, tab-stream is used instead of net.


This is the code for both the server and the client.

var autonode = require('autonode')
autonode(function (stream) {
  // called when a connection is made, whether 
  // this node turns out to be the client or the server. 
    console.log('we are the server')
    console.log('we are the client')

Naturally you will want to use a decentralized communication protocol. checkout crdt or scuttlebutt