Simple in-memory Queue for Node.js. It can be used from remote clients.
Clone or download


Simple in-memory queue for Node.js. It can be accessed by remote clients.


Via npm on Node:

npm install simplequeue

Reference it from your program:

var simplequeue = require('simplequeue');

Local Usage

Create queue, put and get message:

var sq = require('simplequeue');

// ....

var queue = sq.createQueue();
queue.putMessage('my data');

// ....

var newmessage = queue.getMessageSync(); // null if no message

// now, newmessage contains 'my daya'

// put another message

queue.putMessage('my new data');

// ....

// get the message with a callback

queue.getMessage(function (err, msg) {
    // now msg contains 'my new data'

There is a local Queue Server

var sq = require('simplequeue');
var server = new sq.createQueueServer();

Then, you can create a Queue by name

var queue = server.createQueue('myqueue');

If the queue already exists, the original queue is returned.

To get an existent queue

var queue = server.getQueue('myqueue');

If the queue doesn't exist, null is returned.

Remote Usage

Server side:

var localserver = sq.createQueueServer();

var server = sq.createRemoteServer(localserver);

If you don't need a reference to the local server, it can be omitted:

var server = sq.createRemoteServer();

Client side:

var client = sq.createRemoteClient();

client.on('remote', function(server) {
    server.getQueue('myqueue', function(err, queue) {
        if (err) {
        queue.putMessage(new simplequeue.Message('my data'));
        // or you can get a message with a callback
        queue.getMessage(function(err, msg) {
            // ...


client.connect(port, host);


git clone git://
cd SimpleQueue
npm install
npm test



  • 0.0.1: Published.
  • 0.0.2: Published. More factory methods exposed, instead of direct 'classes'. It uses a new version of SimpleRemote (0.0.3)
  • 0.0.3: Published. Engine range update; it uses SimpleRemote 0.0.4
  • 0.0.4: Published. Using SimpleRemote 0.0.5


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.