title |
---|
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.
Note: items with a check mark (✓) are officially supported by Team RabbitMQ and VMware.
- Core CLI tools:
rabbitmqctl
,rabbitmq-diagnostics
,rabbitmq-upgrade
,rabbitmq-queues
, and so on
rabbitmqadmin
v2: an HTTP API-based management tool developed by the Team RabbitMQ
- ✓ PerfTest for quorum and classic queues
- ✓ Stream PerfTest for streams
- ✓ RabbitMQ AMQP 1.0 Java client and the AMQP 1.0 client library guide
- ✓ RabbitMQ Stream Java client
- ✓ RabbitMQ JMS client
- ✓ RabbitMQ AMQP 0.9.1 Java client and its developer guide
- Reactor RabbitMQ, a reactive API for RabbitMQ based on Reactor and RabbitMQ Java client
Client libraries:
- ✓ RabbitMQ AMQP 1.0 .NET client and the AMQP 1.0 client library guide
- ✓ RabbitMQ Stream .NET client
- ✓ RabbitMQ AMQP 0.9.1 .NET client (supports .NET Core and .NET 4.6.1+)
Higher level frameworks:
- NServiceBus, the most popular open-source service bus for .NET.
- Brighter, a Command Processor & Dispatcher implementation with support for task queues
- Cambion, an MIT licensed open-source distributed application framework for .NET
- EasyNetQ, an easy to use, opinionated .NET API for RabbitMQ
- MassTransit, an open-source distributed application framework for .NET.
Miscellaneous projects:
- RabbitMQTools, PowerShell module containing cmdlets to manage RabbitMQ
- ✓ Bunny, a dead easy to use RabbitMQ Ruby client
- AMQP::Client, a lightweight and high performance AMQP 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
- ✓ RabbitMQ AMQP 1.0 Python client and the AMQP 1.0 client library guide,
- ✓ pika, a pure-Python AMQP 0-9-1 client (source code, API reference)
- ✓ rstream: RabbitMQ Stream Python client
- rbfly: RabbitMQ Stream Python client
- aio-pika, a pure-Python AMQP 0-9-1 client built for Python 3 and asyncio (source code, API reference)
- aioamqp, a pure-Python AMQP 0-9-1 library using asyncio (source code, docs)
- FastStream, a powerful and easy-to-use Python library for building asynchronous services that interact with event streams. (source code, docs)
- amqp-client-python, Client with high level of abstraction for manipulation of messages in the event bus RabbitMQ. (source code, docs)
Miscellaneous projects:
- Celery, a distributed task queue for Django and pure Python
- ✓ 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
- 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
- amqplib: RabbitMQ (AMQP 0-9-1) client for Node.js
- amqp-client: High performance client for both NodeJS and browsers (WebSocket), written in TypeScript
- rabbit.js: message patterns in node.js using RabbitMQ.
- rabbitmq-stream-js-client: RabbitMQ Stream NodeJS client.
- 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.
- node-rabbitmq-client: RabbitMQ (AMQP 0-9-1) client library with auto-reconnect, zero dependencies, TypeScript support, and Promise-based API.
- ComQ: Production grade RPC and pub/sub.
- ✓ RabbitMQ AMQP 1.0 Go client and the AMQP 1.0 client library guide
- ✓ RabbitMQ Stream Go client
- ✓ RabbitMQ AMQP 0.9.1 Go client
- Rabbit Hole, RabbitMQ HTTP API client for Go
- amqpc, a load testing tool for RabbitMQ clusters
- ✓ RabbitMQ Objective-C and Swift client from the RabbitMQ team
- Get Started with RabbitMQ on Android
- ✓ RabbitMQ Objective-C and Swift client from the RabbitMQ team
- amqprs, async Rust client, easy-to-use APIs, lock-free, tokio-based
- ✓ RabbitMQ Stream Rust client
- Lapin, a mature Rust client
- amiquip, a RabbitMQ client written in pure Rust
- amqp-client, an AMQP 0-9-1 client for Crystal
- AMQPClient.jl, an AMQP 0-9-1 client for Julia
- Lepus: a purely functional, non-blocking RabbitMQ client for Scala, Scala.js and Scala Native
- RabbitMQ client for Scala
- Akka-based RabbitMQ client for Scala
- Op-Rabbit, an opinionated Akka-based RabbitMQ client for Scala
- RabbitMQ module for Play Framework
- Lift RabbitMQ module
- Grails RabbitMQ plugin
- Grails with RabbitMQ for messaging
- Green Bunny, Groovy RabbitMQ client inspired by Bunny
- Langohr, a Clojure RabbitMQ client built on top of the official Java one
- Bunnicula, Component based framework for Clojure 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
- Hareflow, a RabbitMQ stream client for C++
- RabbitMQ C stream client
- rmqcpp, reliable message delivery ON by default, easy to use, testable, async-capable C++ API
- See Monitoring and Prometheus guides.
- Rabbit Viz, a tool for visualizing exported definition files.
- ✓ RabbitMQ Erlang client
- RabbitMQ Stream Erlang client
- 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
- 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.
- 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.