{"id":34372753,"url":"https://github.com/doubaokun/node-ab","last_synced_at":"2025-12-18T10:53:11.325Z","repository":{"id":65459856,"uuid":"9763210","full_name":"doubaokun/node-ab","owner":"doubaokun","description":"A command tool to test the performance of HTTP services.","archived":false,"fork":false,"pushed_at":"2017-04-08T09:09:22.000Z","size":879,"stargazers_count":203,"open_issues_count":2,"forks_count":22,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-09-21T11:55:32.295Z","etag":null,"topics":["ab-testing","abtest","abtesting","benchmarking","http-services","javascript","node-ab"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doubaokun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-30T03:21:59.000Z","updated_at":"2025-04-04T22:52:09.000Z","dependencies_parsed_at":"2023-01-24T14:25:11.626Z","dependency_job_id":null,"html_url":"https://github.com/doubaokun/node-ab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/doubaokun/node-ab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doubaokun%2Fnode-ab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doubaokun%2Fnode-ab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doubaokun%2Fnode-ab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doubaokun%2Fnode-ab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doubaokun","download_url":"https://codeload.github.com/doubaokun/node-ab/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doubaokun%2Fnode-ab/sbom","scorecard":{"id":353419,"data":{"date":"2025-08-11","repo":{"name":"github.com/doubaokun/node-ab","commit":"532cd76aba045bd1487e5c8ccd4ba1557d9b4f27"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":1,"reason":"Found 2/20 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE-MIT:0","Info: FSF or OSI recognized license: MIT License: LICENSE-MIT:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T08:55:01.555Z","repository_id":65459856,"created_at":"2025-08-18T08:55:01.555Z","updated_at":"2025-08-18T08:55:01.555Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27795641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ab-testing","abtest","abtesting","benchmarking","http-services","javascript","node-ab"],"created_at":"2025-12-18T10:53:10.510Z","updated_at":"2025-12-18T10:53:11.317Z","avatar_url":"https://github.com/doubaokun.png","language":"JavaScript","readme":"## Node ab testing\n\nAutomatically benchmarking the performance of HTTP services.\n\n![node-ab](https://raw.githubusercontent.com/doubaokun/node-ab/master/node-ab.gif)\n\n## How it works\nAb testing tool to check the performance of an HTTP service. 100 more GET request will be increased per second. It will not increase more request if there are more than 10 request not returned. It will stop when there are less than 99% request return successful.\n\nThe requests number per increase round and the time of each round can be changed by user.\n \n## Installation:\n\n    sudo npm install node-ab -g \n\n## Usage:\n\n    nab [URL] [--increase 100] [--milliseconds 1] [--help] [--verbose]\n\n\n    nab --help\n    Usage: nab \u003cURL\u003e [--increase 100] [--milliseconds 1] [--help] [--verbose]\n\n    Samples:\n        nab http://192.168.1.66\n        nab http://localhost\n        nab http://localhost:4000 --increase 200\n        nab http://localhost:4000 -i 200\n        nab http://localhost:4000 --milliseconds 1500\n        nab http://localhost:4000 --milliseconds 1500 --verbose\n        nab http://localhost:4000 -m 1500\n        nab http://localhost:4000 -m 1500 -v\n        nab --help\n        nab -h\n\n## Example:\n\n    nab http://localhost:4000/test\n    Request number: 200 Return number: 200 QPS: 66 Traffic: 32KB per second\n    Request number: 800 Return number: 800 QPS: 133 Traffic: 65KB per second\n    Request number: 1700 Return number: 1700 QPS: 188 Traffic: 92KB per second\n    Request number: 2900 Return number: 2900 QPS: 241 Traffic: 117KB per second\n    Request number: 4400 Return number: 4400 QPS: 293 Traffic: 143KB per second\n    Request number: 6200 Return number: 6200 QPS: 344 Traffic: 168KB per second\n    Request number: 8300 Return number: 8300 QPS: 394 Traffic: 192KB per second\n    Request number: 10700 Return number: 10700 QPS: 445 Traffic: 217KB per second\n    Request number: 13400 Return number: 13400 QPS: 495 Traffic: 242KB per second\n    Request number: 16400 Return number: 16366 QPS: 545 Traffic: 266KB per second\n    Request number: 16400 Return number: 16366 QPS: 495 Traffic: 241KB per second\n    Request number: 16400 Return number: 16366 QPS: 454 Traffic: 221KB per second\n    Request number: 16400 Return number: 16366 QPS: 419 Traffic: 204KB per second\n    Request number: 16400 Return number: 16366 QPS: 389 Traffic: 190KB per second\n    Request number: 18400 Return number: 18268 QPS: 405 Traffic: 198KB per second\n    Request number: 21400 Return number: 21009 QPS: 437 Traffic: 213KB per second\n\n## Development\n\n    git clone git@github.com:doubaokun/node-ab.git\n    npm install -d\n\n### Start a sample http service at http://127.0.0.1:4000/test\n    node sample/app.js\n\n### Start testing the sample http service\n    ./bin/nab http://localhost:81/test\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoubaokun%2Fnode-ab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoubaokun%2Fnode-ab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoubaokun%2Fnode-ab/lists"}