客户端库和开发工具
概述
RabbitMQ 在多个操作系统上获得官方支持,并拥有多个官方客户端库。此外,RabbitMQ 社区还创建了许多客户端、适配器和工具,我们在此列出以方便您使用。
如果您有任何建议希望添加到此列表中,请联系我们。
注意:带有勾选标记 (✓) 的项目由 RabbitMQ 团队和 VMware 官方支持。
负载测试和工作负载模拟
- ✓ PerfTest 用于 仲裁队列 和经典队列
- ✓ Stream PerfTest 用于 流
Java 和 Spring
Java
- ✓ RabbitMQ Java 客户端 及其 开发者指南
- ✓ RabbitMQ Stream Java 客户端
- ✓ RabbitMQ JMS 客户端
- Reactor RabbitMQ,一个基于 Reactor 和 RabbitMQ Java 客户端 的 RabbitMQ 反应式 API
Spring 框架
.NET
客户端库
- ✓ RabbitMQ .NET 客户端(支持 .NET Core 和 .NET 4.6.1 及更高版本)
- ✓ RabbitMQ Stream .NET 客户端
更高级别的框架
- NServiceBus,.NET 最流行的开源服务总线。
- Brighter,一个支持任务队列的命令处理器和分发器实现
- Cambion,一个适用于 .NET 的 MIT 许可的开源分布式应用程序框架
- 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
- ✓ 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 互操作性 是 PHP 中一组统一的 AMQP 0-9-1 接口及其实现
- Bowler 是 Laravel 的 RabbitMQ 客户端抽象
JavaScript 和 Node
- amqplib:Node.js 的 RabbitMQ(AMQP 0-9-1)客户端
- amqp-client:使用 TypeScript 编写的,适用于 NodeJS 和浏览器(WebSocket)的高性能客户端
- 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 Go 客户端
- ✓ RabbitMQ Stream Go 客户端
- Rabbit Hole,RabbitMQ Go 的 HTTP API 客户端
- amqpc,RabbitMQ 集群的负载测试工具
iOS 和 Android
- ✓ RabbitMQ Objective-C 和 Swift 客户端 来自 RabbitMQ 团队
- 在 Android 上开始使用 RabbitMQ
Objective-C 和 Swift
- ✓ RabbitMQ Objective-C 和 Swift 客户端 来自 RabbitMQ 团队
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,一个基于 Akka 的 Scala RabbitMQ 客户端,具有明确的观点
- 使用 Akka Streams 处理 RabbitMQ 消息
- Play Framework 的 RabbitMQ 模块
- Lift RabbitMQ 模块
Groovy 和 Grails
Clojure
JRuby
C 和 C++
- RabbitMQ C 客户端
- SimpleAmqpClient,一个围绕 rabbitmq-c 的 C++ 包装器
- amqpcpp,一个用于 RabbitMQ 的 C++ 消息库
- AMQP-CPP,一个 C++ RabbitMQ 客户端
- RabbitMQ C 流客户端
- rmqcpp,默认情况下启用可靠的消息传递,易于使用、可测试、支持异步的 C++ API
监控
- 请参阅 监控 和 Prometheus 指南。
可视化
- Rabbit Viz,一个用于可视化 导出的定义文件 的工具。
Unity 3D
Erlang
- ✓ RabbitMQ Erlang 客户端
- RabbitMQ Stream Erlang 客户端
- bunny_farm,一个简化 Erlang 客户端的包装器
- RabbitMQ 消息模式,一个用 Erlang 实现的消息模式库
Haskell
OCaml
配置 (Chef、Puppet、Docker 等)
数据库集成
- 用于 RabbitMQ 的 Oracle 存储过程 集成。
- SQL Server Integration Services (SSIS) 的 RabbitMQ 组件.
- RabbitMQ 与 PostgreSQL 的 LISTEN 通知集成。
- RabbitMQ Riak Exchange:一个使用 Riak 作为后端存储的 RabbitMQ 自定义交换类型。
- Riak RabbitMQ 提交后钩子:一个 Riak 的提交后钩子,将任何修改的条目发送到 RabbitMQ。
CLI 工具
- ✓ RabbitMQ CLI 工具
- ✓ rabbitmqadmin,一个针对 RabbitMQ HTTP API 的命令行工具
- amqp-utils,用于与基于 AMQP 的队列交互的命令行实用程序(用 Ruby 编写)
- amqptools,命令行 AMQP 客户端(用 C 编写)
- rabtap,RabbitMQ 线程监控和瑞士军刀命令行工具(用 Go 编写)
第三方插件
- RabbitMQ 全局扇出交换机:一个自定义交换类型,将消息扇出到代理中的每个队列,无论绑定或虚拟主机如何。
- RabbitMQ 最近历史交换机:一个自定义交换类型,跟踪通过该交换机的最后 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 适配器
- 用于 Streambase 的 RabbitMQ 适配器,用于复杂事件处理 (CEP)
- Delphi/Free Pascal RabbitMQ 客户端
- bevis:一个将消息转发到 RabbitMQ 的 syslog 监听器
- rabbitmq-memcached:一个 RabbitMQ 的 memcached 适配器,允许您使用 memcache 协议从 RabbitMQ 获取或发布消息。
- flume-amqp-plugin:一个用于 Flume(一个 Hadoop 数据加载器)的插件,允许您使用 RabbitMQ 节点作为数据源。
- Fudge 消息格式:fudge 是一种分层、类型安全、二进制且自描述的数据编码系统。它是与消息协议无关的。
- QDB:具有重放功能的持久消息队列:通过 AMQP 0-9-1 进行队列备份和重放。包括 REST API
- AMQProxy:一个 AMQP 0-9-1 代理,具有连接和通道池/重用功能
- amqpcat:一个类似 netcat 的 CLI 工具,用于生成和使用 AMQP 0-9-1 消息。