Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A node.js stream you can pull data from.
JavaScript
tag: v0.0.1

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
test
.gitignore
README.md
package.json
pullstream.js

README.md

pullstream

Tired of getting a firehose worth of data from your streams. This module is here to save the day. PullStream allows you to pull data when you want and as much as you want.

Quick Examples

var PullStream = require('pullstream');
var fs = require('fs');

var ps = new PullStream();
var loremIpsumStream = fs.createReadStream('loremIpsum.txt');
var outputStream = fs.createWriteStream(path.join(__dirname, 'loremIpsum.out'));

loremIpsumStream.pipe(ps);

// pull 5 bytes
ps.pull(5, function(err, data) {
  console.log(data.toString('utf8'));

  // pipe the next 100 to a file
  ps.pipe(100, outputStream).on('end', function () {
    console.log('all done');
  });
});

API Index

PullStream

API Documentation

PullStream

ps.pull([number], callback)

Calls a callback when the specified number of bytes are ready. If no number is specified pull will read until the end of the input stream.

Arguments

  • number (optional) - Number of bytes to wait for. If not specified reads to the end of input stream.
  • callback(err, data) - Callback called when the bytes are ready. data is a buffer containing the bytes.

Example

var ps = new PullStream();

ps.pull(5, function(err, data) {
  console.log(data.toString('utf8'));
});

ps.pipe([number], destStream)

Pipes the specified number of bytes to destStream. If a number is not specified pipe will pipe the remainder of the input stream to destStream.

Arguments

  • number (optional) - Number of bytes to pipe. If not specified pipe the rest of input stream.
  • destStream - The stream to pipe data to.

Returns

Returns destStream.

Example

var ps = new PullStream();
var outputStream = fs.createWriteStream(path.join(__dirname, 'loremIpsum.out'));

ps.pipe(100, out).on('end', function() {
  console.log('done with pipe');
});

ps.write(data)

Writes data to input side of a pull stream.

Arguments

  • data - Buffer to write to the input side of the pull stream.

Example

var ps = new PullStream();

ps.pull(5, function(err, data) {
  console.log(data.toString('utf8'));
});

ps.write(new Buffer('Hello World', 'utf8'));

ps.end()

Manually ends a pull stream.

Example

var ps = new PullStream();

ps.pull(5, function(err, data) {
  console.log(data.toString('utf8'));
});

ps.write(new Buffer('Hello World', 'utf8'));
ps.end();
Something went wrong with that request. Please try again.