npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-amqp-docker

v0.0.2

Published

Node-RED AMQP input and output nodes for docker

Readme

Node-RED AMQP input and output nodes

node-red-contrib-amqp-docker is a Node-RED package that connects directly to an AMQP server (e.g. RabbitMQ). It contains an input, an output and a configuration node to connect to AMQP exchanges or queues for Node-RED.

It uses the amqp-ts library for the AMQP connectivity.

Table of Contents

Installation

If you have installed Node-RED as a global node.js package (you use the command node-red anywhere to start it), you need to install node-red-contrib-amqp as a global package as well:

$[sudo] npm install -g node-red-contrib-amqp-docker

If you have installed the .zip or cloned your own copy of Node-RED from github, you can install it as a normal npm package inside the Node-RED project directory:

<path/to/node-red>$ npm install node-red-contrib-amqp-docker

Overview

The package contains the following Node-RED nodes:

input: amqp

Subscribes to an AMQP exchange or queue and reads messages from it. It outputs an object called msg containing the following fields:

  • msg.payload is a string or an object containing the content of the AMQP message.
  • msg.topic is a string containing the routing-key of the AMQP message.
  • msg.amqpMessage is an amqp-ts Message object containing the received message.sendto

If a topic is defined in the input node definition, that will be sent as msg.topic instead of the routing key.

In the settings you can only define the exchange type or queue and it's name. If you need to use an exchange or a queue with specific settings you can define the exchange or queue in the topology tab of the AMQP server configuration node. The input node will use the exchange or queue defined in the topology.

output: amqp

Delivers incoming the message payload to the specified exchange or queue. It expects an object called msg containing the following fields:

  • msg.payload: string or an object containing the content of the AMQP message to be sent.
  • msg.topic: string containing the routing-key of the AMQP message to be sent.
  • msg.options: object containing specific AMQP properties for the message to be sent, see the amqplib publish documentation for more information.

If a topic is defined in the output node definition, that will be sent as routing-key instead of the msg.topic. If the msg.payload field does not exist, the whole msg object will be sent.

In the settings you can only define the exchange type or queue and it's name. If you need to use an exchange or a queue with specific settings you can define the exchange or queue in the topology tab of the AMQP server configuration node. The output node will use the exchange or queue defined in the topology.

configuration: amqp-server

Defines the connection to the AMQP server. You can also define in more detail the exchanges and queues that are used in the input and output nodes and even define bindings between exchanges and queues in the topology tab.

topology tab

In the topology tab you can define the AMQP server exchange and queue topology (exchanges, queues and bindings). You define the topology in the JSON editor.

Topology configuration example:

{
    "exchanges": [
        {"name": "exchange1", "type": "direct", "options": {"durable": false}},
        {"name": "exchange2"}
    ],
    "queues": [
        {"name": "queue1", "options": {"messageTtl": 60000}},
        {"name": "queue2"}
    ],
    "bindings": [
        {"source": "exchange1", "queue": "queue1", "pattern": "debug", "args": {}},
        {"source": "exchange1", "exchange": "exchange2", "pattern": "error"},
        {"source": "exchange2", "queue": "queue2"}
    ]
};

Known issues

  • Entering invalid credentials (username/password) in the AMQP configuration node can cause node-red to malfunction

  • Package library 'amqlib' is outdated, requiring breaking changes

  • Build libraries 'typescript' and 'gulp-typescript' are outdated, requiring breaking changes

  • BUG: When bringing up node-red at start, outgoing node sits in 'connecting'. Trivial change/deploy and it connects

  • POSSIBLE BUG: Observed along with the above bug, a message landing on the AMQP out node in the startup/non-connected state, that presumably should have failed to send, then throw an exception which would be caught in a catch node, is not throwing, and just failing silently

  • Very slow memory leak, unsure if this library, node-red in general, or outdated dependencies: In a test container with an AMQP-out node, sending out 30 messages/sec, with starting memory footprint of ~110 MB, slowly drifts up to ~150 MB, over a four day period.