Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Phpamqplib Messenger

Phpamqplib Messenger Laravel Package

jwage/phpamqplib-messenger

Symfony Messenger AMQP transport powered by php-amqplib. Send and consume messages over RabbitMQ without the ext-amqp extension, with configurable exchanges, queues, routing keys, and delivery options for reliable PHP message handling.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Phpamqplib Messenger
What is jwage/phpamqplib-messenger and do I need it for Laravel?
It is a Symfony Messenger transport backed by php-amqplib, so PHP applications can send and consume RabbitMQ messages without the ext-amqp extension. It plugs into Symfony Messenger's TransportInterface, not Laravel's native Illuminate\Queue abstraction. For Laravel teams it only makes sense if you specifically need Messenger semantics such as envelope middleware, stamps, or transport-level retry behavior, because adopting it means running Symfony Messenger alongside Laravel's queue system.
Can I use jwage/phpamqplib-messenger as a Laravel queue driver?
No. It is a Symfony Messenger transport, not a Laravel queue connector, so Laravel's Queue facade and queue workers will not consume from it directly. If your goal is simply RabbitMQ-backed Laravel queues, use a Laravel-native driver such as vladimir-yuldashev/laravel-queue-rabbitmq instead. This package is for teams that have intentionally chosen Symfony Messenger as a messaging runtime.
How do I install and configure jwage/phpamqplib-messenger?
Install it with Composer using the package name jwage/phpamqplib-messenger, then configure it as a Symfony Messenger transport in your Messenger configuration. You define the exchange, queue, routing key, and delivery options so the transport knows where to publish and consume. Because it is not a Laravel package, you also need to bootstrap Symfony Messenger wiring in your application or in a separate worker service.
Does this package require the ext-amqp PHP extension?
No. The main reason to choose this package is that it uses php-amqplib and pure PHP instead of the native ext-amqp extension. You still need a running RabbitMQ broker and a compatible PHP version plus php-amqplib dependencies. This can simplify deployments where installing or maintaining the ext-amqp extension is undesirable.
Which Symfony Messenger and Laravel versions are supported?
The package targets PHP 8.x and Symfony Messenger 6 or 7, according to its technical evaluation context. It is not a Laravel package, so it has no direct Laravel version constraint. If you use it alongside Laravel 10, 11, or 12, check Composer constraints carefully because Laravel pins certain Symfony components and version conflicts are possible. Verify the current composer.json before committing to an upgrade path.
How is jwage/phpamqplib-messenger different from symfony/amqp-messenger?
The first-party symfony/amqp-messenger transport relies on ext-amqp, while this package uses php-amqplib in pure PHP. Both implement the same Messenger transport contract, so swapping between them is relatively low-effort and reversible. Specific delivery features such as delayed messages, priorities, or publisher confirms should be verified in the package source and documentation before you rely on them.
Is jwage/phpamqplib-messenger safe to use in production?
Treat it as a high-risk but plausible choice. The project has a thin ecosystem footprint, roughly 92 stars and zero dependents, and a bus factor of one maintainer. The 0.10.1 patch suggests recent maintenance activity and attention to retry-delay plumbing, but there is no commercial backing or SLA. Pilot it in one bounded context, verify release dates and CI, and avoid inferring long-term support from a patch release.
How do I test a Symfony Messenger transport with RabbitMQ?
Use Symfony Messenger's in-memory transport for fast unit tests, and add integration tests against a disposable RabbitMQ instance for the transport itself. Check whether the package has CI coverage for real broker scenarios, including reconnect and stale-connection handling like the fix reported in 0.10.1. For a Laravel codebase, keep those tests isolated from the Laravel queue test helpers because this transport is outside Illuminate\Queue.
What are the alternatives to jwage/phpamqplib-messenger for Laravel and RabbitMQ?
For Laravel-native queues, vladimir-yuldashev/laravel-queue-rabbitmq is the lower-friction and better-adopted option. If ext-amqp is acceptable, symfony/amqp-messenger is the first-party Symfony Messenger transport and is close to a drop-in swap. Choose jwage/phpamqplib-messenger only when you need pure-PHP php-amqplib delivery and are already committed to Symfony Messenger semantics.
Does jwage/phpamqplib-messenger support retries, delays, and dead-letter queues?
It is designed to work with Messenger workers and middleware, including retry behavior, and the 0.10.1 release fixed retry-delay plumbing in the publish path. Exchange, queue, routing key, and delivery options are configurable, which is where RabbitMQ-level TTL and dead-letter behavior are typically set up. Confirm the exact features you need against the package documentation and a real broker test, because support depends on both the transport and your RabbitMQ topology.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect