{"id":26613477,"url":"https://github.com/dial-once/node-bunnymq","last_synced_at":"2026-02-25T20:31:22.273Z","repository":{"id":57191626,"uuid":"49967219","full_name":"dial-once/node-bunnymq","owner":"dial-once","description":"BunnyMQ is an amqp.node wrapper to ease common AMQP usages (RPC, pub/sub, channel/connection handling etc.).","archived":false,"fork":false,"pushed_at":"2019-03-28T18:47:57.000Z","size":1649,"stargazers_count":19,"open_issues_count":17,"forks_count":6,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-09-19T08:59:42.955Z","etag":null,"topics":["amqp","consumer","javascript","nodejs","rabbitmq","rpc"],"latest_commit_sha":null,"homepage":"","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/dial-once.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-19T16:44:36.000Z","updated_at":"2025-02-19T10:11:39.000Z","dependencies_parsed_at":"2022-09-01T00:52:50.012Z","dependency_job_id":null,"html_url":"https://github.com/dial-once/node-bunnymq","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/dial-once/node-bunnymq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dial-once%2Fnode-bunnymq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dial-once%2Fnode-bunnymq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dial-once%2Fnode-bunnymq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dial-once%2Fnode-bunnymq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dial-once","download_url":"https://codeload.github.com/dial-once/node-bunnymq/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dial-once%2Fnode-bunnymq/sbom","scorecard":{"id":340676,"data":{"date":"2025-08-11","repo":{"name":"github.com/dial-once/node-bunnymq","commit":"f31bed9ecea98fa55081dbb018777351d58e33f3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"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":"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":"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":"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":"Code-Review","score":4,"reason":"Found 5/11 approved changesets -- score normalized to 4","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":"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":"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":"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":"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:0","Info: FSF or OSI recognized license: MIT License: LICENSE: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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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 24 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"}},{"name":"Vulnerabilities","score":0,"reason":"50 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-3gx7-xhv7-5mx3","Warn: Project is vulnerable to: GHSA-2j2x-2gpw-g8fm","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-46c4-8wrp-j99v","Warn: Project is vulnerable to: GHSA-9m6j-fcg5-2442","Warn: Project is vulnerable to: GHSA-hh27-ffr2-f2jc","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T05:46:01.174Z","repository_id":57191626,"created_at":"2025-08-18T05:46:01.174Z","updated_at":"2025-08-18T05:46:01.174Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29838047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T19:08:47.527Z","status":"ssl_error","status_checked_at":"2026-02-25T18:59:04.705Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["amqp","consumer","javascript","nodejs","rabbitmq","rpc"],"created_at":"2025-03-24T04:25:10.246Z","updated_at":"2026-02-25T20:31:22.256Z","avatar_url":"https://github.com/dial-once.png","language":"JavaScript","readme":"# node-bunnymq\n\n[![Circle CI](https://circleci.com/gh/dial-once/node-bunnymq/tree/develop.svg?style=shield)](https://circleci.com/gh/dial-once/node-bunnymq)\n[![npm](https://img.shields.io/npm/v/bunnymq.svg)]()\n[![npm](https://img.shields.io/npm/dt/bunnymq.svg)]()\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/gate?key=node-bunnymq)](http://sonar.dialonce.net/dashboard?id=node-bunnymq)\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=ncloc)](http://sonar.dialonce.net/dashboard?id=node-bunnymq)\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=coverage)](http://sonar.dialonce.net/dashboard?id=node-bunnymq)\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=code_smells)](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=coverage)\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=bugs)](http://sonar.dialonce.net/dashboard?id=node-bunnymq)\n[![Sonar](http://proxy.dialonce.net/sonar/api/badges/measure?key=node-bunnymq\u0026metric=sqale_debt_ratio)](http://sonar.dialonce.net/dashboard?id=node-bunnymq)\n\n[![npm](https://nodei.co/npm/bunnymq.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://nodei.co/npm/bunnymq/)\n\n## Features\n- Subscriber (consumer)\n- Publisher (producer)\n- RPC (get answers from subscriber automatically)\n- Auto connect/reconnect/queue messages\n- Handle errors / requeing when message callback fails\n- Messages types caring using AMQP headers for content type (send as objects and receive as objects)\n\n## Installation\n**bunnymq requires nodejs 6 or harmony flags!** because it uses es6 features outside strict mode.\n```\nnpm install bunnymq\n```\n\n## Basic usage\n### Publisher\nProducer (publisher), can send messages to a named queue.\n\n```javascript\nconst bunnymq = require('bunnymq')({ host: 'amqp://localhost' });\nbunnymq.publish('queue:name', 'Hello World!');\n```\n\n### Subscriber\nConsumer (subscriber), can handle messages from a named queue.\n\n```javascript\nconst bunnymq = require('bunnymq')({ host: 'amqp://localhost' });\n\nbunnymq.subscribe('queue:name', function (msg) {\n  //msg is the exact item sent by a producer as payload\n  //if it is an object, it is already parsed as object\n});\n```\n\n## RPC Support\nYou can create RPC requests easily by adding the `rpc: true` option to the `produce` call:\n```javascript\nbunnymq.subscribe('queue:name', function() {\n  return 'hello world!'; //you can also return a promise if you want to do async stuff\n});\n\nbunnymq.publish('queue:name', { message: 'content' }, { rpc: true, timeout: 1000 })\n.then(function(consumerResponse) {\n  console.log(consumerResponse); // prints hello world!\n});\n```\nThe optional `timeout` option results in a rejection when no answer has been received after the given amount of milliseconds.\nWhen '0' is given, there will be no timeout for this call.\nThis value will overwrite the default timeout set in the config in `rpcTimeout`.\n\n## Routing keys\nYou can send publish commands with routing keys (thanks to @nekrasoft)\n```javascript\nbunnymq.publish('queue:name', { message: 'content' }, { routingKey: 'my-routing-key' });\n```\n\n## Config\nYou can specify a config object, properties and default values are:\n\n```javascript\n  const bunnymq = require('bunnymq')({\n    host: 'amqp://localhost',\n    //number of fetched messages at once on the channel\n    prefetch: 5,\n    //requeue put back message into the broker if consumer crashes/trigger exception\n    requeue: true,\n    //time between two reconnect (ms)\n    timeout: 1000,\n    //default timeout for RPC calls. If set to '0' there will be none.\n    rpcTimeout: 1000,\n    consumerSuffix: '',\n    //generate a hostname so we can track this connection on the broker (rabbitmq management plugin)\n    hostname: process.env.HOSTNAME || process.env.USER || uuid.v4(),\n    //the transport to use to debug. if provided, bunnymq will show some logs\n    transport: utils.emptyLogger\n  });\n```\n\nYou can override any or no of the property above.\n\n\u003cb\u003eNote:\u003c/b\u003e if you enable the debug mode using the `AMQP_DEBUG=true` env var, but you do not attach any transport logger, the module will fallback to console.\n\n## Env vars\nDeprecated as of 2.1.0, don't use env vars to configure the module, see Config section.\n\n## Documentation \u0026 resources\nTo generate documentation, just run ``` npm run docs```, it will create a docs folder.\n\nYou can also find more about RabbitMq in the links below:\n - http://www.rabbitmq.com/getstarted.html\n - https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html\n - http://spring.io/blog/2010/06/14/understanding-amqp-the-protocol-used-by-rabbitmq/\n\n## Tests\nRequirements:\n  - docker\n  - npm\n  - make\n\nRun `make deps` once and then `make test` to launch the test suite.\n\n## License\nThe MIT License [MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdial-once%2Fnode-bunnymq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdial-once%2Fnode-bunnymq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdial-once%2Fnode-bunnymq/lists"}