A performant pure-PHP AMQP client for RabbitMQ with synchronous and asynchronous (ReactPHP) support.
BunnyPHP is a pure-PHP AMQP client library for connecting to RabbitMQ message brokers. It provides high-performance message publishing and consuming capabilities with support for both synchronous and asynchronous programming patterns using ReactPHP. The library solves the problem of needing a performant, extension-free way to work with RabbitMQ in PHP applications.
PHP developers building applications that need to integrate with RabbitMQ message queues, particularly those who can't or don't want to install PECL extensions, or who need both synchronous and asynchronous operation modes.
Developers choose BunnyPHP for its superior performance compared to php-amqplib, its pure-PHP implementation that avoids PECL extension dependencies, and its clean, idiomatic API that follows PHP standards. The dual sync/async support makes it versatile for different application architectures.
Performant pure-PHP AMQP (RabbitMQ) sync/async (ReactPHP) library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Pure PHP implementation eliminates the need for PECL extensions like ext-amqp, making it deployable on any standard PHP installation without additional dependencies.
Outperforms php-amqplib by up to 366% in message production and 949% in consumption, as shown in detailed benchmarks in the README, rivaling ext-amqp in many tests.
Supports both synchronous patterns and asynchronous operation via ReactPHP integration with Fibers, allowing seamless use in traditional and event-driven PHP applications.
Follows PHP coding standards with idiomatic naming and modern features like named parameters, avoiding the awkward interfaces found in alternatives like php-amqplib.
The library is still in development (v0.6 dev) and not marked stable, which could pose risks for production systems needing long-term support and backward compatibility.
Asynchronous usage requires wrapping calls in fibers and managing ReactPHP event loops, adding setup overhead and a learning curve compared to simpler synchronous clients.
Only implements AMQP 0.9.1 for RabbitMQ, making it incompatible with brokers using AMQP 1.0 or other protocols, as admitted in the README's broker compatibility section.