
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
http-benchmark
Advanced tools
Scriptable Http performance scenario utility for any webapp. Easily performance test backend API layers and client facing sites in parallel with development.
Scriptable Http performance Scenario utility for any webapp. Easily performance test backend API layers and client facing sites in parallel with development.
npm install http-benchmark
When testing large number of concurrent requests you may experience issues related to native HTTP library limitations or OS limitations. Here are some symptoms and recommended fixes:
You are probably getting the following error: {"0":{"code":"EMFILE","errno":"EMFILE","syscall":"connect"}}
Which basically means you have run out of available connections on your machine.
If you are on a *nix box increase your ulimit to a large number.
You can view your current open file limit with the following command, or Google 'ulimit' for more info.
> ulimit -u
You may encounter this error with large numbers of concurrent requests over HTTPS. If you inspect your packet traffic you will see many seconds of time spent by Node's HTTPS module negotiating secure communication: Cipher exchange, etc. You can approach the issue in two distinct ways:
The below example will create 10 parallel workers. Each worker will execute 5 actions in batches delayed 1000ms. The action will be a single Http request to Google. Each action is non-blocking and will execute 1000ms apart. A basic report will be displayed that shows statistics about the scenario as it plays out. A total of 50 requests will be made.
Scenario = require 'http-benchmark'
scenario = new Scenario()
scenario
.get 'https://www.google.com#q=apple'
.concurrency 10
.actions 5
.throttle 1000
.report()
.start()
Scenario = require 'http-benchmark'
scenario = new Scenario()
data =
foo: 'bar'
goo: 100
scenario
.post 'https://www.google.com/upload', data
.post 'https://www.google.com/upload', 'foo=bar&goo=100', 'application/x-www-form-urlencoded; charset=UTF-8'
.cookie 'name=value;domain=.google.com;path=/;secure=true'
.cookie 'another=value;domain=.example.com;path=/'
.concurrency 10
.actions 5
.throttle 1000
.report()
.start()
To accurately performance test a web app you need to put the system under production like load. Typically you would want to spin up requests to all parts of your system in parallel to the new feature/service your testing. Chained scenarios are one answer to this problem. In the below example we chain Scenario's together to create tests that match real world load. Each new scenario is given a separate option block, worker, runner, and reporter. The first scenario produces 10,000 requests 10 per batch, each batch 10ms apart, to Google's main page 'www.google.com'. The second scenario exercises Google's search, 40 workers submitting 100 search requests with a 5s delay between request.
Since each scenario will execute simultaneously we can test the search components performance while the main system is being exercised too.
Scenario = require 'http-benchmark'
scenario = new Scenario()
scenario
.get 'https://www.google.com'
.concurrency 10
.actions 1000
.throttle 10
.report()
.start()
.get 'https://www.google.com#q=orange'
.get 'https://www.google.com#q=grape'
.get 'https://www.google.com#q=avocado'
.get 'https://www.google.com#q=fig'
.concurrency 10
.actions 100
.throttle 5000
.report()
.start()
FAQs
Scriptable Http performance scenario utility for any webapp. Easily performance test backend API layers and client facing sites in parallel with development.
We found that http-benchmark 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.

Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.

Research
A malicious package uses a QR code as steganography in an innovative technique.

Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.