客户端库和开发工具
概述
RabbitMQ 在多种操作系统上得到官方支持,并提供多个官方客户端库。此外,RabbitMQ 社区还创建了许多客户端、适配器和工具,我们在此为您汇总。
如果您有建议希望添加到此列表,请联系我们。
注意:带有复选标记 (✓) 的项目由 Team RabbitMQ 和 VMware 提供官方支持。
管理工具
内置
- 核心 CLI 工具:
rabbitmqctl、rabbitmq-diagnostics、rabbitmq-upgrade、rabbitmq-queues等。
HTTP API
rabbitmqadminv2:由 Team RabbitMQ 开发的基于 HTTP API 的管理工具。
负载测试和工作负载模拟
- ✓ 用于 quorum 和经典队列的 PerfTest
- ✓ 用于 流的 Stream PerfTest
Java 和 Spring
Java
- ✓ RabbitMQ AMQP 1.0 Java 客户端及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream Java 客户端
- ✓ RabbitMQ JMS 客户端
- ✓ RabbitMQ AMQP 0.9.1 Java 客户端及其 开发指南
- Reactor RabbitMQ,一个基于 Reactor 和 RabbitMQ Java 客户端的 RabbitMQ 响应式 API
Spring Framework
.NET
客户端库
- ✓ RabbitMQ AMQP 1.0 .NET 客户端及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream .NET 客户端
- ✓ RabbitMQ AMQP 0.9.1 .NET 客户端(支持 .NET Core 和 .NET 4.6.1+)
更高级别的框架
- NServiceBus,.NET 最流行的开源服务总线。
- Brighter,支持任务队列的 Command Processor & Dispatcher 实现。
- Cambion,一个 MIT 许可的开源分布式应用程序框架,用于 .NET。
- EasyNetQ,一个易于使用、有主见的 RabbitMQ .NET API。
- MassTransit,一个开源的 .NET 分布式应用程序框架。
杂项项目
- RabbitMQTools,包含管理 RabbitMQ 的 cmdlet 的 PowerShell 模块。
Ruby
- ✓ Bunny,一个非常易于使用的 RabbitMQ Ruby 客户端。
- AMQP::Client,一个轻量级、高性能的 AMQP Ruby 客户端。
- March Hare,一个 JRuby RabbitMQ 客户端。
- Sneakers,一个用于 Ruby 和 RabbitMQ 的快速后台处理框架。
- Hutch,一个基于约定的框架,用于编写通过 RabbitMQ 进行通信的(Ruby)服务。
- Ruby RabbitMQ HTTP API 客户端
- Ruby RabbitMQ 客户端博客
- Ruby RabbitMQ 客户端邮件列表
Python
- ✓ RabbitMQ AMQP 1.0 Python 客户端及 AMQP 1.0 客户端库指南
- ✓ pika,一个纯 Python AMQP 0-9-1 客户端(源代码,API 参考)
- ✓ rstream:RabbitMQ Stream Python 客户端
- rbfly:RabbitMQ Stream Python 客户端
- aio-pika,一个专为 Python 3 和 asyncio 构建的纯 Python AMQP 0-9-1 客户端(源代码,API 参考)
- aioamqp,一个使用 asyncio 的纯 Python AMQP 0-9-1 库(源代码,文档)
- FastStream,一个强大且易于使用的 Python 库,用于构建与事件流交互的异步服务。(源代码,文档)
- amqp-client-python,一个具有高级抽象的客户端,用于操作事件总线 RabbitMQ 中的消息。(源代码,文档)
杂项项目
- Celery,一个用于 Django 和纯 Python 的分布式任务队列。
PHP
- ✓ php-amqplib,一个纯 PHP、功能齐全的 RabbitMQ 客户端。
- RabbitMqBundle,将 RabbitMQ 消息与 Symfony2 Web 框架集成。
- PECL AMQP 库,构建在 RabbitMQ C 客户端之上。
- Thumper,一个消息模式库。
- CAMQP,Yii 框架的扩展,提供 RabbitMQ 消息的网关。
- AMQP Interop,一套 PHP 中的统一 AMQP 0-9-1 接口及其实现。
- Bowler,Laravel 的 RabbitMQ 客户端抽象。
JavaScript 和 Node
- amqplib:Node.js 的 RabbitMQ (AMQP 0-9-1) 客户端。
- amqp-client:高性能的 NodeJS 和浏览器(WebSocket)客户端,用 TypeScript 编写。
- rabbit.js:使用 RabbitMQ 在 Node.js 中实现的消息模式。
- rabbitmq-stream-js-client:RabbitMQ Stream NodeJS 客户端。
- amqp-stats:一个用于 RabbitMQ 管理统计的 Node.js 接口。
- Rascal:一个配置驱动的 amqp.node 包装器,支持多主机连接、自动错误恢复、重传洪水保护、透明加密和通道池。
- node-rabbitmq-client:RabbitMQ (AMQP 0-9-1) 客户端库,具有自动重连、零依赖、TypeScript 支持和基于 Promise 的 API。
- ComQ:生产级的 RPC 和发布/订阅。
Go
- ✓ RabbitMQ AMQP 1.0 Go 客户端及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream Go 客户端
- ✓ RabbitMQ AMQP 0.9.1 Go 客户端
- Rabbit Hole,Go 的 RabbitMQ HTTP API 客户端
- amqpc,一个用于 RabbitMQ 集群的负载测试工具。
iOS 和 Android
- ✓ 由 RabbitMQ 团队提供的 RabbitMQ Objective-C 和 Swift 客户端
- Android RabbitMQ 入门
Objective-C 和 Swift
- ✓ 由 RabbitMQ 团队提供的 RabbitMQ Objective-C 和 Swift 客户端
Rust
- amqprs,异步 Rust 客户端,易于使用的 API,无锁,基于 Tokio。
- ✓ RabbitMQ Stream Rust 客户端
- Lapin,一个成熟的 Rust 客户端。
- amiquip,一个用纯 Rust 编写的 RabbitMQ 客户端。
Crystal
- amqp-client,Crystal 的 AMQP 0-9-1 客户端。
Julia
- AMQPClient.jl,Julia 的 AMQP 0-9-1 客户端。
其他 JVM 语言
Scala
- Lepus:Scala、Scala.js 和 Scala Native 的纯函数式、非阻塞 RabbitMQ 客户端。
- Scala 的 RabbitMQ 客户端
- 基于 Akka 的 Scala RabbitMQ 客户端
- Op-Rabbit,Scala 的一个有主见的、基于 Akka 的 RabbitMQ 客户端。
- Play Framework 的 RabbitMQ 模块
- Lift RabbitMQ 模块
Groovy 和 Grails
- Grails RabbitMQ 插件
- Grails 与 RabbitMQ 进行消息传递
- Green Bunny,受 Bunny 启发的 Groovy RabbitMQ 客户端。
Clojure
JRuby
Kotlin
C 和 C++
- RabbitMQ C 客户端
- SimpleAmqpClient,rabbitmq-c 的 C++ 包装器。
- amqpcpp,RabbitMQ 的 C++ 消息库。
- AMQP-CPP,RabbitMQ 的 C++ 客户端。
- Hareflow,RabbitMQ 的 C++ 流客户端。
- RabbitMQ C 流客户端
- rmqcpp,默认开启可靠消息传递,易于使用、可测试、支持异步的 C++ API。
监控
- 请参阅 监控 和 Prometheus 指南。
可视化
- Rabbit Viz,一个用于可视化 导出定义文件的工具。
Unity 3D
Erlang
- ✓ RabbitMQ AMQP 1.0 Erlang 客户端
- ✓ RabbitMQ AMQP 0.9.1 Erlang 客户端
- RabbitMQ Stream Erlang 客户端
- bunny_farm,Erlang 客户端的简化包装器。
- RabbitMQ Messaging Patterns,一个用 Erlang 实现的消息模式库。
Haskell
OCaml
部署(Chef、Puppet、Docker 等)
数据库集成
- RabbitMQ 集成的 Oracle 存储过程。
- RabbitMQ SQL Server Integration Services (SSIS) 组件.
- RabbitMQ 与 PostgreSQL 的 LISTEN 通知集成。
- RabbitMQ Riak Exchange:一种自定义的 RabbitMQ 交换类型,使用 Riak 作为后端存储。
- Riak RabbitMQ postcommit Hook:Riak 的 postcommit Hook,将任何修改过的条目发送到 RabbitMQ。
CLI 工具
- ✓ RabbitMQ CLI 工具
- ✓ rabbitmqadmin,一个针对 RabbitMQ HTTP API 的命令行工具。
- amqp-utils,用于与基于 AMQP 的队列交互的命令行工具(Ruby 语言)。
- amqptools,命令行 AMQP 客户端(C 语言)。
- rabtap,RabbitMQ 流量捕获和瑞士军刀命令行工具(Go 语言)。
第三方插件
- RabbitMQ Global Fanout Exchange:一种自定义交换类型,无论绑定或 vhost 如何,都能将消息扇出到代理中的每个队列。
- RabbitMQ Recent History Exchange:一种自定义交换类型,可跟踪最近通过的 20 条消息,以便新绑定的队列能够收到最近的消息历史。
- RabbitMQ 的 SMTP 网关
Perl
- RabbitFoot,使用 Coro 和 AnyEvent::RabbitMQ 的异步多通道 RabbitMQ 客户端。
- AnyEvent::RabbitMQ,一个异步多通道 RabbitMQ 客户端。
OCaml
- NetAMQP,OCaml 的原生 AMQP 0-9-1 客户端,已在 RabbitMQ 上进行测试。
Common Lisp
- cl-rabbit,RabbitMQ 的 Common Lisp 客户端库。
COBOL
流量捕获和协议分析
- Wireshark 是全球领先的网络协议分析器。
杂项
- XMPP 适配器
- Delphi/Free Pascal RabbitMQ 客户端
- bevis:一个 syslog 监听器,通过 RabbitMQ 转发消息。
- rabbitmq-memcached:RabbitMQ 的 memcached 适配器,允许您使用 memcache 协议从 RabbitMQ 获取或发布消息。
- flume-amqp-plugin:Flume(Hadoop 数据加载器)的一个插件,允许您使用 RabbitMQ 节点作为数据源。
- Fudge Messaging Format:fudge 是一种数据编码系统,具有分层、类型安全、二进制和自描述的特点。它与消息传递协议无关。
- AMQProxy:一个 AMQP 0-9-1 代理,具有连接和通道池/重用功能。
- amqpcat:一个类似 netcat 的 CLI 工具,用于生产和消费 AMQP 0-9-1 消息。