Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
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
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
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.