All Projects → ignicaodigitalbr → roger-rabbit

ignicaodigitalbr / roger-rabbit

Licence: other
A module that makes the process of consuming and publishing messages in message brokers easier

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to roger-rabbit

Benthos
Fancy stream processing made operationally mundane
Stars: ✭ 3,705 (+30775%)
Mutual labels:  rabbitmq, amqp, message-queue
Enqueue Bundle
[READ-ONLY] Message queue bundle for Symfony. RabbitMQ, Amazon SQS, Redis, Service bus, Async events, RPC over MQ and a lot more
Stars: ✭ 233 (+1841.67%)
Mutual labels:  rabbitmq, amqp, message-queue
Enqueue Dev
Message Queue, Job Queue, Broadcasting, WebSockets packages for PHP, Symfony, Laravel, Magento. DEVELOPMENT REPOSITORY - provided by Forma-Pro
Stars: ✭ 1,977 (+16375%)
Mutual labels:  rabbitmq, amqp, message-queue
rejected
rejected is a consumer framework for RabbitMQ
Stars: ✭ 56 (+366.67%)
Mutual labels:  rabbitmq, amqp
AMQPClient.jl
A Julia AMQP (Advanced Message Queuing Protocol) / RabbitMQ Client.
Stars: ✭ 30 (+150%)
Mutual labels:  rabbitmq, message-queue
Spring Boot Amqp Messaging
This is a simple spring-boot app that shows how to configure easily RabbitMQ with AMQP for producing and consuming messages in default format and JSON.
Stars: ✭ 142 (+1083.33%)
Mutual labels:  rabbitmq, amqp
Amqpstorm
Thread-safe Python RabbitMQ Client & Management library
Stars: ✭ 130 (+983.33%)
Mutual labels:  rabbitmq, amqp
Cony
Simple AMQP wrapper around github.com/streadway/amqp
Stars: ✭ 158 (+1216.67%)
Mutual labels:  rabbitmq, amqp
Garagemq
AMQP message broker implemented with golang
Stars: ✭ 153 (+1175%)
Mutual labels:  rabbitmq, amqp
Rabtap
RabbitMQ wire tap and swiss army knife
Stars: ✭ 171 (+1325%)
Mutual labels:  rabbitmq, amqp
Qmq
QMQ是去哪儿网内部广泛使用的消息中间件,自2012年诞生以来在去哪儿网所有业务场景中广泛的应用,包括跟交易息息相关的订单场景; 也包括报价搜索等高吞吐量场景。
Stars: ✭ 2,420 (+20066.67%)
Mutual labels:  rabbitmq, message-queue
rabbitmq-advanced-spring-boot-starter
A generic library for messaging with rabbit mq with extension on spring boot amqp
Stars: ✭ 85 (+608.33%)
Mutual labels:  amqp, message-broker
sample-spring-cloud-stream
sample microservices communicating asynchronously using spring cloud stream, rabbitmq
Stars: ✭ 22 (+83.33%)
Mutual labels:  rabbitmq, message-broker
Rabbitmq Dump Queue
Dump messages from a RabbitMQ queue to files, without affecting the queue.
Stars: ✭ 139 (+1058.33%)
Mutual labels:  rabbitmq, amqp
Gen rmq
Elixir AMQP consumer and publisher behaviours
Stars: ✭ 146 (+1116.67%)
Mutual labels:  rabbitmq, amqp
Hippo
💨A well crafted go packages that help you build robust, reliable, maintainable microservices.
Stars: ✭ 134 (+1016.67%)
Mutual labels:  rabbitmq, message-queue
rabbitmq-labs
The source code for my RabbitMQ tutorials.
Stars: ✭ 45 (+275%)
Mutual labels:  message-queue, message-broker
Amqproxy
An intelligent AMQP proxy, with connection and channel pooling/reusing
Stars: ✭ 115 (+858.33%)
Mutual labels:  rabbitmq, amqp
Bitnami Docker Rabbitmq
Bitnami Docker Image for RabbitMQ
Stars: ✭ 120 (+900%)
Mutual labels:  rabbitmq, amqp
Kombu
Kombu is a messaging library for Python.
Stars: ✭ 2,263 (+18758.33%)
Mutual labels:  rabbitmq, message-queue

Travis Codecov npm npm

Roger Rabbit

Roger Rabbit is a module that makes the process of consuming and publishing messages in message brokers easier. It is a wrapper for amqplib.

Install

npm install roger-rabbit --save

Example

// broker.js
const Broker = require('roger-rabbit');

module.exports = Broker({
  host: 'amqp://guest:guest@localhost:5672',
  exchange: {
    type: 'direct',
    name: 'exchange.name',
  },
});
// consumer.js
const broker = require('./broker');

const queue = {
  name: 'queue.name',
  options: {
    durable: true,
  },
};

const routingKey = 'routing.key.name';

broker.consume({ queue, routingKey }, (message) => {
  // do something
  // throw an error to reject message
});
// publisher.js
const broker = require('./broker');

broker
  .publish('routing.key.name', { message: 'hello world' })
  .then(console.log)
  .catch(console.error);

Documentation

Broker

Option Description Required Default
host message broker connection url yes null
logger logger object no console
disableLog disable log (all levels) no false
exchange exchange options no null
queue queue options no null

Exchange options

Option Description Default
type direct, topic, fanout empty string (deafault)
name exchange name null
options options used in assertExchange null

Queue options

Option Description Default
name queue name null
options options used in assertQueue null

broker.consume

broker.consume expects to receive an object with consumers options and routing key name and callback. Example:

const broker = require('./broker');

const queue = {
  name: 'queue.name',
  options: {
    durable: true,
  },
};

const routingKey = 'routing.key.name';

broker.consume({ queue, routingKey }, (message) => {
  // do something
  // throw an error to reject message
});

broker.publish

broker.publish expects to receive routing key, message and publish options. Example:

const options = {
  persistent: true,
  exchange: {
    name: 'exchange.name',
  },
};

broker.publish('routing.key', { message: 'message' }, options)
  .then(message => /* handle success */)
  .catch(error => /* handle error */);

broker.sendToQueue

broker.sendToQueue expects to receive queue name, message and publish options. Example:

const queue = {
  options: {},
};

broker.sendToQueue('queue.name', { message: 'message' }, { queue })
  .then(message => /* handle success */)
  .catch(error => /* handle error */);
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].