Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,24 @@ This module exports two classes, `Throttle` and `ThrottleGroup`.
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)

```js
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 `www.google.com:80`, and throttles their aggregate (downstream) bandwidth to 10 KB/s:
```js
var addr = { host: 'www.google.com', port: 80 };
var tg = new ThrottleGroup({rate: 10240});

var addr = { host: 'www.google.com', 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());
var conn1 = net.createConnection(addr),
conn2 = net.createConnection(addr);

// Reads from thr1 and thr2 are throttled to 10 KB/s in aggregate
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.
Expand Down