Node Stream Throttle

A rate limiter for node.js streams.
Alternatives To Node Stream Throttle
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Twitter Lite7441522a year ago22February 09, 202161mitJavaScript
A tiny, full-featured, flexible client / server library for the Twitter API
a year ago19April 26, 20206mitJavaScript
:lollipop: FlvPlayer.js is a JavaScript player for decode flv to the canvas
Node Stream Throttle18031,150817 years ago4April 08, 20143otherJavaScript
A rate limiter for node.js streams.
Getusermedia To Rtmp83
3 years ago7JavaScript
Bandwidth Throttle70
5 years ago1August 08, 20152wtfplPHP
PHP library for traffic shaping.
9 months ago34otherJulia
Core types for regularly-sampled multichannel signals like Audio, RADAR and Software-Defined Radio
Dynsampler Go585108 days ago8November 03, 2021apache-2.0Go
Dynsampler is a Golang library for dynamic sampling of events sent to Honeycomb.
Tweets30719 years ago6November 14, 20131mitJavaScript
Youtube Cli26
11 years ago1June 02, 20121Python
command line interface to youtube, provides search, stream and download functionality.
4 years ago3mitC++
Stream audio over UDP with low latency (can be used for remote speakers)
Alternatives To Node Stream Throttle
Select To Compare

Alternative Project Comparisons


A rate limiter for Node.js streams.

API usage

This module exports two classes, Throttle and ThrottleGroup.

Throttle creates a single throttled stream, based on stream.Transform. It accepts an opts parameter with the following keys:

  • opts.rate is the throttling rate, in bytes per second.
  • opts.chunksize (optional) is the maximum chunk size into which larger writes are decomposed; the default is opts.rate/10.

The opts object may also contain options to be passed to the stream.Transform constructor.

For example, the following code throttles stdin to stdout at 10 bytes per second:

process.stdin.pipe(new Throttle({rate: 10})).pipe(process.stdout)

ThrottleGroup allows the creation of a group of streams whose aggregate bandwidth is throttled. The constructor accepts the same opts argument as for Throttle. Call throttle on a ThrottleGroup object to create a new throttled stream belonging to the group.

For example, the following code creates two HTTP connections to, and throttles their aggregate (downstream) bandwidth to 10 KB/s:

var addr = { host: '', port: 80 };
var tg = new ThrottleGroup({rate: 10240});

var conn1 = net.createConnection(addr),
    conn2 = net.createConnection(addr);

var thr1 = conn1.pipe(tg.throttle()),
    thr2 = conn2.pipe(tg.throttle());

// Reads from thr1 and thr2 are throttled to 10 KB/s in aggregate

Command line usage

This package installs a throttleproxy binary which implements a command-line utility for throttling connections. Run throttleproxy -h for instructions.


Feel free to open an issue or send a pull request.


BSD-style. See the LICENSE file.


Copyright © 2013 Tiago Quelhas. Contact me at <[email protected]>.

Popular Stream Projects
Popular Rating Projects
Popular Control Flow Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Rate Limiter