2.0.1 • Published 6 years ago

streamspeed v2.0.1

Weekly downloads
3,922
License
MIT
Repository
github
Last release
6 years ago

streamspeed

A simple way to keep track of the speed of your readable streams.

Depfu codecov

Usage

const StreamSpeed = require('streamspeed');

let rs = fs.createReadStream('somefile.avi');
let ss = new StreamSpeed();
ss.add(rs);

// Listen for events emitted by streamspeed on the given stream.
ss.on('speed', (speed) => {
  console.log('Reading at', speed, 'bytes per second');
});

Keep track of a group of streams

let group = new Streamspeed();
group.add(stream1);
group.add(stream2);
group.add(stream3);

group.on('speed', (speed) => {
  console.log('now reading at', speed, 'bps');
});

example img

API

new StreamSpeed(options)

A group that can be used to watch several streams. Will emit speed events. options can have the following properties,

  • timeUnit - Defaults to 1000 for speed per second. If you want another unit such as per hour, use 1000 * 60 * 60.
  • range - The time in ms to calculate speed over. Defaults to 1000. The longer this is, the more stable speed will be for a big stream. The shorter it is, the more responsive it is to sudden speed changes.

StreamSpeed#add(stream)

Adds stream to group.

StreamSpeed#remove(stream)

Removes stream from group.

StreamSpeed#getSpeed()

Get current speed.

StreamSpeed#getStreamSpeed(stream)

Get an individual's stream's current speed.

StreamSpeed#getStreams()

Returns a list of all streams in the group.

StreamSpeed.toHuman(bytes, options)

Helper method to convert bytes to a human readable string.

StreamSpeed.toHuman(1500);                                  // 1.46KB
StreamSpeed.toHuman(1024 * 1024);                           // 1MB
StreamSpeed.toHuman(1024 * 1024 * 20.5, { timeUnit: 's' }); // 20.5MB/s
StreamSpeed.toHuman(1024 * 1024 * 20.5, { precision: 3 });  // 20.50MB

Event: 'speed'

  • number - Speed at which streams in the group are being read.

Will be emitted every time a stream is read and only if there is a change in speed.

Install

npm install streamspeed

Tests

Tests are written with mocha

npm test
2.0.1

6 years ago

2.0.0

6 years ago

1.1.1

8 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

11 years ago

0.2.0

13 years ago

0.1.3

14 years ago

0.1.2

14 years ago

0.1.1

14 years ago

0.1.0

14 years ago