客户端库和开发者工具
概述
RabbitMQ 在许多操作系统上获得官方支持,并有多个官方客户端库。此外,RabbitMQ 社区创建了许多客户端、适配器和工具,我们在此列出供您参考。
如果您有任何建议,希望看到添加到此列表中的内容,请联系我们。
注意:带有勾号 (✓) 的项目是 RabbitMQ 团队和 VMware 官方支持的。
管理工具
内置
- 核心 CLI 工具:
rabbitmqctl
,rabbitmq-diagnostics
,rabbitmq-upgrade
,rabbitmq-queues
等
HTTP API
rabbitmqadmin
v2:由 RabbitMQ 团队开发的基于 HTTP API 的管理工具
负载测试和工作负载模拟
- ✓ PerfTest,用于仲裁队列和经典队列
- ✓ Stream PerfTest,用于流
Java 和 Spring
Java
- ✓ RabbitMQ AMQP 1.0 Java client 以及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream Java client
- ✓ RabbitMQ JMS client
- ✓ RabbitMQ AMQP 0.9.1 Java client 及其开发者指南
- Reactor RabbitMQ,一个基于 Reactor 和 RabbitMQ Java client 的 RabbitMQ 响应式 API
Spring Framework
.NET
客户端库
- ✓ RabbitMQ AMQP 1.0 .NET client 以及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream .NET client
- ✓ RabbitMQ AMQP 0.9.1 .NET client(支持 .NET Core 和 .NET 4.6.1+)
更高级别的框架
- NServiceBus,最流行的 .NET 开源服务总线。
- Brighter,一个命令处理器和分发器实现,支持任务队列
- 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 client 以及 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 library 构建于 RabbitMQ C client 之上
- 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: node.js 中使用 RabbitMQ 的消息模式。
- 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 client 以及 AMQP 1.0 客户端库指南
- ✓ RabbitMQ Stream Go client
- ✓ RabbitMQ AMQP 0.9.1 Go client
- Rabbit Hole, RabbitMQ HTTP API client for Go
- amqpc,一个用于 RabbitMQ 集群的负载测试工具
iOS 和 Android
- ✓ RabbitMQ Objective-C 和 Swift client,来自 RabbitMQ 团队
- Android 上 RabbitMQ 入门
Objective-C 和 Swift
- ✓ RabbitMQ Objective-C 和 Swift client,来自 RabbitMQ 团队
Rust
- amqprs,异步 Rust 客户端,易于使用的 API,无锁,基于 tokio
- ✓ RabbitMQ Stream Rust client
- Lapin,一个成熟的 Rust 客户端
- amiquip,一个用纯 Rust 编写的 RabbitMQ 客户端
Crystal
- amqp-client,一个用于 Crystal 的 AMQP 0-9-1 客户端
Julia
- AMQPClient.jl,一个用于 Julia 的 AMQP 0-9-1 客户端
其他 JVM 语言
Scala
- Lepus:一个纯粹函数式、非阻塞的 RabbitMQ 客户端,适用于 Scala、Scala.js 和 Scala Native
- Scala 的 RabbitMQ 客户端
- 基于 Akka 的 Scala RabbitMQ 客户端
- Op-Rabbit,一个有主见的基于 Akka 的 Scala RabbitMQ 客户端
- Play Framework 的 RabbitMQ 模块
- Lift RabbitMQ 模块
Groovy 和 Grails
Clojure
JRuby
C 和 C++
- RabbitMQ C client
- SimpleAmqpClient,一个 rabbitmq-c 的 C++ 封装器
- amqpcpp,一个用于 RabbitMQ 的 C++ 消息库
- AMQP-CPP,一个 C++ RabbitMQ 客户端
- Hareflow,一个用于 C++ 的 RabbitMQ 流客户端
- RabbitMQ C stream client
- rmqcpp,默认情况下可靠消息传递 ON,易于使用,可测试,支持异步的 C++ API
监控
- 请参阅监控和Prometheus指南。
可视化
- Rabbit Viz,一个用于可视化导出的定义文件的工具。
Unity 3D
Erlang
- ✓ RabbitMQ Erlang 客户端
- RabbitMQ Stream Erlang 客户端
- bunny_farm,Erlang 客户端的简化封装器
- RabbitMQ Messaging Patterns,一个在 Erlang 中实现的消息传递模式库
Haskell
OCaml
配置(Chef、Puppet、Docker 等)
数据库集成
- 用于 RabbitMQ 集成的 Oracle 存储过程。
- 用于 SQL Server Integration Services (SSIS) 的 RabbitMQ 组件.
- 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 wire tap 和瑞士军刀命令行工具(在 go 中)
第三方插件
- RabbitMQ Global Fanout Exchange:一种自定义交换类型,无论绑定或 vhost 如何,都将消息扇出到 broker 中的每个队列。
- RabbitMQ Recent History Exchange:一种自定义交换类型,用于跟踪已通过的最后 20 条消息,以便新绑定的队列接收最近的消息历史记录。
- 用于 RabbitMQ 的 SMTP 网关
Perl
- RabbitFoot,一个使用 Coro 和 AnyEvent::RabbitMQ 的异步和多通道 RabbitMQ 客户端
- AnyEvent::RabbitMQ,一个异步和多通道 RabbitMQ 客户端
OCaml
- NetAMQP,一个针对 RabbitMQ 测试的 Ocaml 原生 AMQP 0-9-1 客户端
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 消息。