Bidirectional and unidirectional object streams for Node.js

npm install objectstream
12 downloads in the last week
64 downloads in the last month


Bidirectional and unidirectional object streams for Node.js.


Via npm on Node:

npm install objectstream


Reference in your program:

var objectstream = require('objectstream');

Write objects to a serialize stream:

var stream = fs.createSerializeStream(filename);
var objstream = objectstream.createSerializeStream(stream);
objstream.write({ name: 'Adam', age: 800 });
objstream.write({ name: 'Eve', age: 700 });

createSerializeStream accepts a writable stream as parameter. In this example, the objects will be written to a file. The final content will be two lines, with the objects serialized using JSON.stringify:


Now, given the same file (already closed), you can read the objects using a deserialize stream:

var stream = fs.createDeserializeStream(filename);
var objstream = objectstream.createDeserializeStream(stream);
objstream.on('data', function (data) { console.dir(data); });
objstream.on('end', function () { console.dir('done'); });

You will receive two deserialized objects.

There is a bidirectional object stream:

var objstream = fs.createStream(bidirectionalstream);

For example, the parameter could be a socket, that is a bidirectional stream implementation.

Alternatively, you can specify a readable stream and writable stream:

var objstream = fs.createStream(readstream, writestream);

You can write and read objects:

objstream.on('data', function (obj) { console.dir(obj); });
objstream.write({ message: 'hello', arguments: { name: 'Adam' }});


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



To do

  • Samples


  • 0.0.1: Published
  • 0.0.2: Published. Improved write stream, testing writable property before write.
  • 0.0.3: Published. Reviewing internal events. Updated engine range
  • 0.0.4: Published. Write only if output stream is writable


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.

npm loves you