PHPackages                             ivan-grebnev/laravel-rabbitmq - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. ivan-grebnev/laravel-rabbitmq

ActiveLibrary[Queues &amp; Workers](/categories/queues)

ivan-grebnev/laravel-rabbitmq
=============================

Laravel queue RabbitMQ driver.

0.8.0(1y ago)04.0k1MITPHPPHP ^7.4 || ^8.0

Since May 17Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ivan-grebnev/laravel-rabbitmq)[ Packagist](https://packagist.org/packages/ivan-grebnev/laravel-rabbitmq)[ RSS](/packages/ivan-grebnev-laravel-rabbitmq/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (2)Versions (14)Used By (0)

Laravel queue RabbitMQ driver
=============================

[](#laravel-queue-rabbitmq-driver)

By default, the Laravel framework doesn't include a RabbitMQ driver for the queue feature. This package adds compatibility with this message broker.

You will also be able to exchange messages with other systems that don't support Laravel native queue message format.

Installation
------------

[](#installation)

Just install this package by Composer:

```
composer require ivan-grebnev/laravel-rabbitmq
```

And set environment variables with credentials to connect to RabbitMQ server, for example in `.env` file:

```
RABBITMQ_HOST=some.hostname # or IP-address
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/
```

Configuration
-------------

[](#configuration)

Default configuration places in `src/config/default.php`. You can override any config options in your project's `config/queue.php` in the **rabbitmq** section, for example:

```
...
'rabbitmq' => [
    'tasks' => [
        // parameters of concrete task
        'SomeSend' => [
            'exchange' => 'Some.Send.Exchange',
            'routing_key' => 'Any.Routing.Key',
        ],
        'SomeRecieve' => [
            'queue' => 'Some.Recieve.Queue',
            'job' => \App\Jobs\Exchange\RecieveJob::class,
        ]
    ],
    // here default parameters for all tasks
    'defaults' => [
        'worker_job' => \App\Jobs\Exchange\CustomWorkerJob::class,
        'exchange_type' => 'topic',
        'consume_no_ack' => true,
    ],
],
...
```

For all tasks config takes from "defaults" section, but can be overridden in parameters of concrete task.

All possible settings you can see in source config file with comments .

Tasks
-----

[](#tasks)

What does it mean **task**? The Laravel uses the term "queue" to refer to an application's messaging channel with a queue server in either direction. But the RabbitMQ message broker additionally has **exchange** as its entry point, and **exchange** can have exactly the same name as **queue**. For this reason, the concept of **task** was introduced to separate configuration settings. So the example below will work:

```
// config/queue.php
...
'rabbitmq' => [
    'tasks' => [
        'UsersSendTask' => [
            'exchange' => 'Site.Users',
        ],
        'UsersRecieveTask' => [
            'queue' => 'Site.Users',
            'job' => \App\Jobs\Exchange\UsersRecieveJob::class,
        ]
    ],
    'defaults' => [
        'worker_job' => \App\Jobs\Exchange\CustomWorkerJob::class,
    ],
],
...
```

This is necessary when RabbitMQ queues are used not only for the internal needs of the application, but for exchanging data with other systems, then we push messages to one exchange or queue, and pull our messages from others.

Thus, in the package sources, **task** is like **queue** in Laravel, and **queue** is exactly the **queue** of RabbitMQ. So to execute the example above:

```
UsersSendJob::dispatch()->onConnection('rabbitmq')->onQueue('UsersSendTask');
```

and

```
artisan queue:work rabbitmq --queue=UsersRecieveTask
```

Custom jobs
-----------

[](#custom-jobs)

There are three types of Job:

- Sending to exchange / queue job
- Pulling by worker job
- Executing job

...to be continued...

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~80 days

Recently: every ~94 days

Total

12

Last Release

574d ago

PHP version history (2 changes)v0.1.0PHP ^8.0

0.2.0PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e9d444df49d5f7b5180ca60a7515916c951239f8d4d0460fdc9582d692e7e6bb?d=identicon)[9Grebnev](/maintainers/9Grebnev)

---

Top Contributors

[![ivan-grebnev](https://avatars.githubusercontent.com/u/7302325?v=4)](https://github.com/ivan-grebnev "ivan-grebnev (2 commits)")

---

Tags

laravelrabbitmq

### Embed Badge

![Health badge](/badges/ivan-grebnev-laravel-rabbitmq/health.svg)

```
[![Health](https://phpackages.com/badges/ivan-grebnev-laravel-rabbitmq/health.svg)](https://phpackages.com/packages/ivan-grebnev-laravel-rabbitmq)
```

###  Alternatives

[bschmitt/laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages

2752.3M7](/packages/bschmitt-laravel-amqp)[convenia/pigeon

3233.0k](/packages/convenia-pigeon)[mookofe/tail

RabbitMQ and PHP client for Laravel and Lumen that allows you to add and listen queues messages just simple

5552.5k](/packages/mookofe-tail)[kunalvarma05/laravel-rabbitmq

Work with RabbitMQ in Laravel.

1853.7k](/packages/kunalvarma05-laravel-rabbitmq)[iamfarhad/laravel-rabbitmq

A robust RabbitMQ driver for Laravel Queue with advanced message queuing, reliable delivery, and high-performance async processing capabilities

3215.6k](/packages/iamfarhad-laravel-rabbitmq)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
