nsq-stream

2.1.1 • Public • Published

nsq-stream

Streaming interface for nsq.js.

Example

var nsqStream = require('nsq-stream');
var nsq = require('nsq.js');
 
var reader = nsq.reader(/* ... */);
var writer = nsq.writer(/* ... */);
 
var subscriber = nsqStream.createReadStream(reader);
subscriber.on('data', function(json){
  console.log(json);
});
 
var publisher = nsqStream.createWriteStream(writer, 'topic');
publisher.write({ foo: 'bar' });

API

createReadStream(reader[, type, opts])

Create a readable stream from reader.

Type can be:

  • json: msg.json() (default)
  • buffer: msg.body
  • message: msg

opts supports:

  • highWaterMark: Selecting a highWaterMark of 0 will ensure no jobs get buffered and marked as finished before the writeStream consuming the messages accepts them. This keeps backpressure on nsqd side but will negatively impact performance in high throughput cases.
  • type: Fallback for the type argument

createWriteStream(writer, topic)

Create a writable stream from writer to topic.

Write any JSON.stringify()-able JavaScript object to it.

Backpressure

Backpressure is created by not .finish()ing messages until they have been consumed. NOTE Some messages will be buffered in memory and marked as finished if highWaterMark is not set to 0.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i nsq-stream

Weekly Downloads

19

Version

2.1.1

License

MIT

Unpacked Size

3.27 kB

Total Files

4

Last publish

Collaborators

  • juliangruber