awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
amqp-node avatar

amqp-node/amqplib

0
View on GitHub↗

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
amqp-node.github.io/amqplib
↗

Amqplib

amqplib is a Node.js client library for AMQP 0-9-1 message brokers such as RabbitMQ. Applications use it to open a connection to a broker, create channels, and publish and consume messages through queues and exchanges. The same operations are available through a promise-based interface and a callback interface, so code can follow whichever asynchronous style a project already uses. Under the client API sits a codec that encodes and decodes protocol frames and handles connection and channel handshakes.

The library covers reliability and flow control as well as basic messaging. Consumers acknowledge, reject, or requeue deliveries. Publishers can use confirmation-mode channels so the server acknowledges each published message. A prefetch count caps unacknowledged messages, and publish calls return a boolean and emit a drain event so producers can pause when the channel buffer is full. For long-running services, a connection can reconnect automatically after a drop, with configurable backoff, jitter, and retry limits. Initial connection retries can be bounded separately, and a setup step can be rerun to recreate queues and consumers. Heartbeats monitor connection liveness, and exceptions thrown in user-supplied event listeners are routed to a dedicated handler instead of silently closing channels or connections.

Messaging operations are exposed as methods on channel objects, which refer to exchanges and queues by name. Required protocol arguments are passed as method parameters, and optional arguments, properties, and extensions are merged into a single options argument. The library supports declaring exchanges of different types, binding queues to them with patterns, and managing queues with durability, expiry, length, priority, and dead-letter settings. Messages can be published to an exchange or directly to a queue, consumed through a callback, or fetched one at a time on demand.

Features

  • AMQP - A Node.js client library for AMQP 0-9-1 brokers such as RabbitMQ, opening channels and publishing and consuming messages.
  • Message Broker Connectivity - Connects Node.js applications to AMQP 0-9-1 brokers such as RabbitMQ and creates channels for messaging operations.
  • Asynchronous Message Publishing - Publishes messages to an exchange or directly to a queue, with options for routing keys, persistence, expiry, priority and headers.
  • Message Queue Configurations - Declares queues, publishes messages to them and delivers incoming messages to a consumer callback that acknowledges each message after processing.
3,847 stars·472 forks·JavaScript·3 views
  • Message Acknowledgement Handlers - Lets consumers acknowledge, reject or requeue delivered messages individually or in bulk so the broker knows what was processed.
  • Message Broker Consumers - Registers a callback that receives each queue message, with options for priority, exclusivity and automatic acknowledgement, and supports cancelling the consumer.
  • Message Brokers - Acts as a client for message brokers, declaring queues and exchanges, routing messages, and acknowledging deliveries between services.
  • Connection Resilience - Reconnects automatically after a dropped connection using configurable backoff delay, jitter and retry limits, through promise or callback interfaces.
  • Promise-Callback Unification - Offers the same messaging client interface in both promise-based and callback-based versions so developers can match their existing asynchronous style.
  • Reliable Message Delivery - Combines consumer acknowledgements, publisher confirmations, persistence, and redelivery so important messages are not lost.
  • Channel-Based Messaging Operations - Exposes messaging operations as methods on channel objects, with exchanges and queues referenced by name in method arguments.
  • Publishing Confirmations - Offers confirmation-mode channels where the server acknowledges each published message, with per-message callbacks and a wait for all outstanding confirmations.
  • Message Queue Declarations - Declares queues idempotently with durability, expiry, length, priority, and dead-letter settings, and can purge undelivered messages on demand.
  • Message Routing - Declares exchanges of different types and binds queues with patterns so messages reach destinations by routing key, with durability, expiry, priority, and dead-letter settings.
  • Exchange-Based Routing - Declares exchanges of different types and binds queues or other exchanges using patterns so messages route by exchange type.
  • Consumer Prefetch Limits - Sets a prefetch count capping unacknowledged messages per consumer or per channel so slow consumers are not flooded.
  • Automatic Connection Recovery - Reconnects automatically after a dropped connection with configurable delay, backoff, jitter, and retry limits, then reruns setup to recreate queues and consumers.
  • Backpressure Controls - Limits unacknowledged messages with a prefetch count and returns a boolean plus a drain event so producers can pause when buffers fill.
  • Star history

    Star history chart for amqp-node/amqplibStar history chart for amqp-node/amqplib

    How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

    Frequently asked questions

    What does amqp-node/amqplib do?

    amqplib is a Node.js client library for AMQP 0-9-1 message brokers such as RabbitMQ. Applications use it to open a connection to a broker, create channels, and publish and consume messages through queues and exchanges. The same operations are available through a promise-based interface and a callback interface, so code can follow whichever asynchronous style a project already uses. Under the client API sits a codec that encodes and decodes protocol frames and handles…

    What are the main features of amqp-node/amqplib?

    The main features of amqp-node/amqplib are: AMQP, Message Broker Connectivity, Asynchronous Message Publishing, Message Queue Configurations, Message Acknowledgement Handlers, Message Broker Consumers, Message Brokers, Connection Resilience.

    Which projects share features with amqp-node/amqplib?

    Projects with overlapping indexed features include: streadway/amqp — This is a Go client library and protocol implementation for interacting with message brokers using the AMQP 0.9.1… pika/pika — Pika is a Python client library for implementing communication between applications and message brokers using the AMQP… php-amqplib/php-amqplib — php-amqplib is a PHP library that implements the AMQP protocol to enable communication between applications and… airtai/faststream — FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified… rabbitmq/rabbitmq-server — RabbitMQ is a multi-protocol messaging broker that functions as an AMQP message broker, a clustered message queue, and… squaremo/amqp.node — amqp.node is a Node.js client and asynchronous messaging middleware designed for communicating with message brokers…

    Projects sharing features with Amqplib

    These projects share indexed features with Amqplib. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • streadway/amqpstreadway avatar

      streadway/amqp

      4,919View on GitHub↗

      This is a Go client library and protocol implementation for interacting with message brokers using the AMQP 0.9.1 standard. It serves as an asynchronous messaging toolkit and message queue client for implementing producer and consumer patterns. The library provides a programmatic interface for managing the full message lifecycle, including publishing, consumption, and delivery acknowledgments. It supports reliable delivery mechanisms such as publishing confirmations and atomic transactions. The project covers the administration of routing topologies through the declaration and binding of que

      Goamqpgoprotocol
      View on GitHub↗4,919
    • pika/pikapika avatar

      pika/pika

      3,867View on GitHub↗

      Pika is a Python client library for implementing communication between applications and message brokers using the AMQP 0-9-1 protocol. It serves as a toolkit for sending and receiving messages, specifically enabling the creation of producers and consumers that interact with RabbitMQ and other AMQP-compliant brokers. The library provides both an asynchronous messaging framework that integrates with external event loops for non-blocking data exchange and a procedural synchronous wrapper for performing messaging tasks without an asynchronous architecture. Its connection management toolkit inclu

      Pythonamqp0-9-1clientpython
      View on GitHub↗3,867
    • php-amqplib/php-amqplibphp-amqplib avatar

      php-amqplib/php-amqplib

      4,599View on GitHub↗

      php-amqplib is a PHP library that implements the AMQP protocol to enable communication between applications and message brokers. It provides the necessary tools to integrate PHP applications with RabbitMQ for sending and receiving messages across decoupled services. The library supports a wide range of messaging patterns, including asynchronous task processing, event-driven architectures, and remote procedure calls using correlation identifiers. It manages the full message lifecycle through publishing, queue declaration, and flexible consumption models using either push-based subscriptions or

      PHPamqphacktoberfestmessaging
      View on GitHub↗4,599
    • airtai/faststreamairtai avatar

      airtai/faststream

      5,234View on GitHub↗

      FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int

      Python
      View on GitHub↗5,234
    Compare all 30 related projects→