Awesome
Awesome AMQP 1.0
A curated list of AMQP 1.0 resources. Unless explicitly stated, AMQP in this list refers to AMQP 1.0.
The Advanced Message Queuing Protocol (AMQP) is the Internet Protocol for Business Messaging. It is designed to be secure, reliable, interoperable, standard and open.
Table of Contents
- Protocol Specifications
- Introduction
- Brokers
- Routers, Adapters, Bridges
- Libraries and Clients
- Tools
- More Reading
- Contribute
Protocol Specifications
Core Protocol
Extended Specifications and Bindings
- AMQP WebSockets Binding - Defines using the WebSocket protocol as a transport for AMQP (Committee Specification 01).
- AMQP Addressing - Defines a standard text based syntax and semantics for message addresses used with AMQP (working draft).
- AMQP Management Specification - Defines a request/response protocol over AMQP to perform management operations (working draft).
- AMQP Claims-based Security - Defines a layered protocol to authenticate AMQP clients using security tokens (working drafts wd02 wd03 wd04 wd05).
- AMQP JMS Mapping - Defines a mapping for supporting JMS using AMQP as the wire protocol (working draft).
OASIS AMQP Technical Committee
- OASIS AMQP TC - Information about the AMQP Technical Committee.
Introduction
- amqp.org - The web site.
- Clemens Vasters Channel9 Subscribe! - A series of videos explaining the core components in AMQP.
- Apache Qpid - Messaging built on AMQP 1.0.
- AMQP Essentials by Paolo Patierno. Practical introduction to AMQP.
Brokers
- Microsoft Azure Service Bus - Cloud Messaging (queues, pub/sub).
- Microsoft Azure Event Hubs - Cloud-scale telemetry service.
- Microsoft Service Bus For Windows Server (Service Bus 1.1).
- Apache ActiveMQ - An open source message broker written in Java. AMQP is one of the supported protocols.
- Apache ActiveMQ Artemis - The Next Generation Message Broker by ActiveMQ, AMQP 1.0 is a natively supported protocol.
- Apache Qpid Java Broker - A pure-Java AMQP message broker.
- Apache Qpid C++ Broker - A native-code AMQP message broker.
- Red Hat JBoss A-MQ - Based on Apache ActiveMQ.
- Solace - Messaging Platform that supports AMQP 1.0
- SwiftMQ - A JMS broker that has AMQP 1.0 support.
- IBM MQ with AMQP channel.
- RabbitMQ
Routers, Adapters, Bridges
- Apache Qpid Dispatch Router - An AMQP router for scalable messaging interconnect.
- SwiftMQ AMQP Router.
- Sqlstream AMQP adapter.
- OpenMAMA AMQP Bridge - Enable communication over AMQP through the Middleware Agnostic Messaging API.
- AMQP - Apache Kafka bridge - Connect AMQP clients to Apache Kafka cluster.
- [Archived] AMQP - Apache Spark Streaming - Connect AMQP clients to Apache Spark cluster on the streaming side.
Libraries and Clients
- Microsoft AmqpNetLite - C#.
- Microsoft AmqpNetLite.nanoFramework - AmqpNetLite version for .Net nanoFramework.
- Microsoft AmqpNetMicro - A compact version of AmqpNetLite for .Net Micro Framework.
- Microsoft AmqpNetMicro.nanoFramework - A compact version of AmqpNetLite for .Net nanoFramework.
- Microsoft Azure AMQP - C#.
- Microsoft uAMQP - C.
- Microsoft uAMQP for Python - Python bindings for uAMQP for C for Python 3.4+.
- Microsoft uAMQP for PHP - PHP bindings for uAMQP for C for PHP 7+.
- Apache NMS AMQP - AMQP 1.0 NMS Client for .NET
- Apache Qpid JMS - AMQP 1.0 JMS client.
- Apache Qpid Proton - The AMQP messaging toolkit in various languages.
- Proton-C: C and its language bindings (cpp, go, python, and ruby).
- Proton-J: Java.
- node-amqp10 - A promise-based, AMQP 1.0 compliant node.js client.
- Rhea - A node.js client.
- SwiftMQ AMQP 1.0 Client - Java.
- IBM MQ Light - AMQP 1.0 clients for node.js, Java, Ruby, Python.
- amqp-io - An AMQP serializer for Java objects.
- vertx-amqp-bridge - AMQP 1.0 support implementing the Vert.x MessageProducer and MessageConsumer APIs over vertx-proton.
- vertx-proton - A thin Vert.x integration for the Apache Qpid Proton protocol engine.
- Rhea Node-RED - AMQP 1.0 nodes for Node-RED and flow programming.
- Go AMPQ - Golang
- fe2o3-amqp - A rust implementation of AMQP 1.0 based on tokio and serde
Tools
- AMQP 1.0 interactive type reference.
- Adverb - Distill AMQP net trace into web page.
- Wireshark with AMQP 1.0 dissector.
- SwiftMQ AMQP 1.0 Test Suite.
- TestAmqpBroker from AMQP.Net Lite.
- qpid-bow - Higher level client framework for Python 3.6+ to communicate with AMQP/Qpid servers combined with a set of CLI tools to manage a Qpid server.
- amc - Artemis Messaging Client - CLI tool to send & receive messages via AMQP 1.0. Supports some Artemis-specific metadata like ANYCAST/MULTICAST.
More Reading
- Clarifying AMQP by Kelly Sommers. How the AMQP 1.0 protocol is completely different from the old AMQP 0.9 protocol.
- Hello World! by Chuck Rolke. AMQP.Net Lite client connecting to Red Hat JBoss A-MQ broker.
- AMQP Illustrated by Chuck Rolke. Code walkthrough of the Hello World! example and Wireshark capture of network traces.
- AMQP protocol built in type system by example by Paolo Patierno. Introduction to AMQP frames and built in type system.
- AMQP on the wire messages content framing by Paolo Patierno. A journey inside the messages structure with a sending example.
- AMQP message accepted encoding on the wire by Paolo Patierno. What it means to receive and accept a message at wire level.
- Routing AMQP : The Qpid Dispatch Router project by Paolo Patierno. Introduction to the AMQP router project.
- Qpid Dispatch Router installation on your Linux machine by Paolo Patierno. Installing the AMQP router on a Linux machine.
- Routing mechanisms for AMQP protocol by Paolo Patierno. AMQP routing mechanisms available with the AMQP router.
- My Raspberry Pi runs the Qpid Dispatch Router by Paolo Patierno. How to run the AMQP router on a Raspberry Pi.
- A routing IoT gateway to the Cloud by Paolo Patierno. How to use the AMQP router as field IoT gateway to the Azure IoT Hub.
- Differences between AMQP 0-10 and AMQP 1.0.
- What's up with AMQP 1.0?.
Presentations
- Azure Service Bus : under the hood by Paolo Patierno. How the AMQP protocol works under the cover of the Azure Service Bus.
- IoT protocols war ! Battles on the fields ... by Paolo Patierno. Comparison between AMQP, MQTT, HTTP and CoAP on different fields like : architecture, implementation and weight, data transport and manipulation, IoT communication patterns and security.
- IoT protocols landscape by Paolo Patierno. Comparison between AMQP, MQTT, HTTP and CoAP on all their provided features.
Contribute
Contributions welcome! Read the contribution guidelines first.