Clients Libraries and Developer Tools
RabbitMQ is officially supported on a number of operating systems and has several official client libraries. In addition, the RabbitMQ community has created numerous clients, adaptors and tools that we list here for your convenience.
Please contact us with suggestions for things you would like to see added to this list.
- RabbitMQ Java client and its developer guide
- RabbitMQ JMS client
- Reactor RabbitMQ, a reactive API for RabbitMQ based on Reactor and RabbitMQ Java Client
- camel-rabbitmq, an Apache Camel component for interacting with RabbitMQ. This ships as part of Camel 2.12 or later.
- Banyan, a RabbitMQ-backed message bus with a tree topology.
- RabbitMQ .NET Client (supports .NET Core and .NET 4.5.1+)
- RawRabbit, a higher-level client that targets ASP.NET vNext and supports .NET Core.
Higher level frameworks:
- EasyNetQ, an easy to use, opinionated .NET API for RabbitMQ
- NServiceBus, the most popular open-source service bus for .NET.
- Brighter, a Command Processor & Dispatcher implementation with support for task queues
- Restbus, a service-oriented framework for .NET
- RabbitMQTools, PowerShell module containing cmdlets to manage RabbitMQ
- Bunny, a dead easy to use RabbitMQ Ruby client
- March Hare, a JRuby RabbitMQ client
- Sneakers, a fast background processing framework for Ruby and RabbitMQ
- Hutch, a conventions-based framework for writing (Ruby) services that communicate over RabbitMQ.
- Ruby RabbitMQ HTTP API client
- Ruby RabbitMQ clients blog
- Ruby RabbitMQ clients mailing list
- pika, a pure-Python AMQP 0-9-1 client (source code, API reference)
- aio-pika, a pure-Python AMQP 0-9-1 client built for Python 3 and asyncio (source code, API reference)
- Celery, a distributed task queue for Django and pure Python
- aioamqp, a pure-Python AMQP 0-9-1 library using asyncio (source code, docs)
- aio-amqp, another asynchronous Python client built around asyncio (source code)
- php-amqplib a pure PHP, fully featured RabbitMQ client
- RabbitMqBundle incorporates RabbitMQ messaging with the Symfony2 web framework
- PECL AMQP library built on top of the RabbitMQ C client
- VorpalBunny a PHP client library using rabbitmq_jsonrpc_channel
- Thumper a library of messaging patterns
- CAMQP an extension for the Yii framework providing a gateway for RabbitMQ messaging
- AMQP Interop is a set of unified AMQP 0-9-1 interfaces in PHP and their implementations
- Bowler is a RabbitMQ client abstraction for Laravel
- amqp.node: RabbitMQ (AMQP 0-9-1) client for Node.js
- rabbit.js: message patterns in node.js using RabbitMQ.
- amqp-stats: a node.js interface for RabbitMQ management statistics
- Rascal: a config driven wrapper for amqp.node supporting multi-host connections, automatic error recovery, redelivery flood protection, transparent encryption and channel pooling.
- amqp-client.js AMQP 0-9-1 client both for Node.js and browsers (using WebSocket)
- RabbitMQ Objective-C and Swift client from the RabbitMQ team
- amqp-client, an AMQP 0-9-1 client for Crystal
- RabbitMQ client for Scala
- Akka-based RabbitMQ client for Scala
- Op-Rabbit, an opinionated Akka-based RabbitMQ client for Scala
- Processing RabbitMQ messages using Akka Streams
- RabbitMQ module for Play Framework
- Lift RabbitMQ module
Groovy and Grails
- Grails RabbitMQ plugin
- Grails with RabbitMQ for messaging (PDF) Green Bunny, Groovy RabbitMQ client inspired by Bunny
- Langohr, a Clojure RabbitMQ client built on top of the official Java one
- RabbitMQ C client
- SimpleAmqpClient, a C++ wrapper around rabbitmq-c
- amqpcpp, a C++ message library for RabbitMQ
- AMQP-CPP, a C++ RabbitMQ client
- Go RabbitMQ client
- Rabbit Hole, RabbitMQ HTTP API client for Go
- amqpc, a load testing tool for RabbitMQ clusters
- RabbitMQ Erlang client guide
- bunny_farm, a simplifying wrapper for the Erlang client
- RabbitMQ Messaging Patterns, a library of messaging patterns implemented in Erlang
Oracle Stored Procedures for RabbitMQ integration. RabbitMQ component for SQL Server Integration Services (SSIS). RabbitMQ integration with PostgreSQL’s LISTEN notifications. RabbitMQ Riak Exchange: a custom exchange type for RabbitMQ that uses Riak as a backing store. Riak RabbitMQ postcommit Hook: a postcommit hook for Riak that sends any modified entries to RabbitMQ.
- RabbitMQ CLI tools
- rabbitmqadmin, a command line tool that targets RabbitMQ HTTP API
- amqp-utils, command line utils for interacting with an AMQP based queue (in Ruby)
- amqptools, command line AMQP clients (in C)
- rabtap, RabbitMQ wire tap and swiss army knife command line tool (in go)
- RabbitMQ Global Fanout Exchange: a custom exchange type that fans out messages to every queue in the broker no matter what the bindings or vhosts.
- RabbitMQ Recent History Exchange: a custom exchange type that keeps track of the last 20 messages that have passed through such that newly bound queues receive a recent message history.
- SMTP gateway for RabbitMQ
- RabbitFoot, an asynchronous and multi-channel RabbitMQ client using Coro and AnyEvent::RabbitMQ
- AnyEvent::RabbitMQ, an asynchronous and multi-channel RabbitMQ client
- NetAMQP, a native AMQP 0-9-1 client for Ocaml tested against RabbitMQ
- cl-rabbit a Common Lisp client library for RabbitMQ
- Wireshark is the world’s foremost network protocol analyzer
- XMPP adaptor
- RabbitMQ Adapter for Streambase for complex event processing (CEP)
- Delphi/Free Pascal RabbitMQ Client
- bevis: a syslog listener that forwards messages over RabbitMQ
- rabbitmq-memcached: a memcached adapter for RabbitMQ that allows you to use the memcache protocol to get or publish a message from or to RabbitMQ
- flume-amqp-plugin: a plugin for Flume (a Hadoop data loader) that allows you to use a RabbitMQ node as a data source.
- Fudge Messaging Format: fudge is a data encoding system that is hierarchical, typesafe, binary and self-describing. It is messaging protocol-agnostic.
- QDB: Persistent Message Queues with Replay: queue backup and replay over AMQP 0-9-1. Includes REST API
- AMQProxy: An AMQP 0-9-1 proxy, with connection and channel pooling/reusing
- amqpcat: A netcat-like CLI tool for producing and consuming AMQP 0-9-1 messages.