Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
speed-limiter
Advanced tools
Throttle the speed of streams in NodeJS
npm install speed-limiter
const { ThrottleGroup } = require('speed-limiter')
const rate = 200 * 1000 // 200 KB/s
const throttleGroup = new ThrottleGroup({ rate })
// Create a new throttle
const throttle = throttleGroup.throttle()
// Use it throttle as any other Transform
let dataReceived = ''
const dataToSend = 'hello'
throttle.on('data', (data) => {
dataReceived += data.toString()
})
throttle.on('end', () => {
console.log('Ended')
})
throttle.write(dataToSend)
throttle.end()
const throttleGroup = new ThrottleGroup(opts)
Initialize the throttle group.
The param opts
can have these parameters:
{
enabled: Boolean, // Enables/disables the throttling (defaul=true)
rate: Number, // Sets the max. rate (in bytes/sec)
chunksize: Number, // Sets the chunk size used (deault=rate/10)
}
Note: the rate
parameter is required
throttleGroup.getEnabled()
Returns a boolean
.
If true, the throttling is enabled for the whole throttleGroup
, otherwise not.
However, if a specific throttle
in the group has the throttling disabled, then only
that throttle will block the data.
throttleGroup.getRate()
Returns a number
.
Gets the bytes/sec rate at which the throttle group rate is set.
throttleGroup.getChunksize()
Returns a number
.
Gets the chunk size used in the rate limiter.
throttleGroup.setEnabled(enabled)
Used to disable or enabling the throttling of all the throttles of throttleGroup
.
throttleGroup.setRate(rate)
Sets the maxium rate (in bytes/sec) at which the whole group of throttles can pass data.
throttleGroup.setChunksize(chunksize)
Sets the chunk size used in the rate limiter.
const throttle = new Throttle(opts)
Initialize the throttle instance.
The param opts
can have these parameters:
{
enabled: Boolean, // Enables/disables the throttling for that throttle (default=true)
rate: Number, // Sets the max. rate (in bytes/sec)
chunksize: Number, // Sets the chunk size used (default=rate/10)
group: ThrottleGroup, // Sets the throttle group for that throttle (default=null)
}
If the group
parameter is null, then a new ThrottleGroup
will be created.
Note: the rate
parameter is required
throttle.getEnabled()
Returns a boolean
.
If true, the throttling is enabled for throttle
, otherwise not.
throttle.getGroup()
Returns the ThrottleGroup
of throttle
.
throttle.setEnabled(enabled)
Used to disable or enabling the throttling of throttle
.
MIT. Copyright (c) Alex
FAQs
Throttle the speed of streams
The npm package speed-limiter receives a total of 2,877 weekly downloads. As such, speed-limiter popularity was classified as popular.
We found that speed-limiter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.