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
pika avatar

pika/pika

0
View on GitHub↗
3,867 stars·845 forks·Python·BSD-3-Clause·15 viewspika.readthedocs.io↗

Pika

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 includes automatic connection recovery, heartbeat monitoring, and fault-tolerant retry strategies. The system employs a state machine to track network lifecycles and supports multi-endpoint failover logic to maintain connectivity during broker server failures.

The library also includes thread-safe callback routing to move tasks from background network threads to the primary execution loop.

Features

  • AMQP Protocol Clients - Implements the AMQP 0-9-1 protocol to enable communication between Python applications and message brokers.
  • AMQP - Implements the binary AMQP 0-9-1 protocol for encoding and decoding messages transmitted to brokers.
  • Message Broker Connectivity - Provides synchronous and asynchronous adapters to establish communication links with AMQP message brokers.
  • RabbitMQ Integrations - Provides a toolkit for building producers and consumers that interact specifically with RabbitMQ brokers.
  • Connection Lifecycle State Machines - Uses a formal state machine to track network lifecycle transitions, handling reconnections and heartbeat monitoring.
  • Connection Lifecycle Managers - Handles network lifecycles including automated state transitions, heartbeats, and reconnection logic.
  • Automatic Connection Recovery - Automatically detects network failures and restores active connections and channels using retry strategies.
  • Non-Blocking Event Loops - Integrates with external event loops to perform non-blocking network operations and manage message flow.
  • Asynchronous Messaging Frameworks - Implements non-blocking communication patterns using an external event loop to handle high message volumes.
  • Synchronous Messaging Interfaces - Provides a procedural synchronous wrapper for performing messaging tasks without requiring an asynchronous architecture.
  • Distributed Service Communications - Enables reliable data exchange between decoupled services across different network nodes.
  • Asynchronous-to-Synchronous Wrappers - Wraps asynchronous logic in a high-level procedural interface to allow sequential messaging tasks.
  • Persistent Connection Management - Manages persistent connections with automatic retries and heartbeat monitoring to prevent data loss.
  • Multi-Host Failover - Maintains connectivity during server failures by rotating through a list of configured host addresses.
  • Sequential Host Failover - Implements sequential host failover by iterating through a list of host nodes to maintain connectivity.

Star history

Star history chart for pika/pikaStar history chart for pika/pika

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.

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

Projects sharing features with Pika

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

    squaremo/amqp.node

    3,845View on GitHub↗

    amqp.node is a Node.js client and asynchronous messaging middleware designed for communicating with message brokers using the AMQP 0-9-1 protocol. It enables the creation of decoupled, event-driven architectures where independent components exchange data via queues and exchanges. The library features a multiplexed channel manager that operates multiple logical communication streams over a single persistent connection. It includes stateful connection recovery tools that automatically restore broken network links and re-establish message consumers after service interruptions. The implementatio

    JavaScript
    View on GitHub↗3,845
  • php-amqplib/php-amqplibphp-amqplib avatar

    php-amqplib/php-amqplib

    4,597View 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,597
  • streadway/amqpstreadway avatar

    streadway/amqp

    4,932View 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,932
  • vyuldashev/laravel-queue-rabbitmqvyuldashev avatar

    vyuldashev/laravel-queue-rabbitmq

    2,117View on GitHub↗

    This project provides a queue driver that integrates RabbitMQ as a message broker within the Laravel framework. It acts as a bridge between the application and the broker, enabling asynchronous task offloading and distributed system integration by mapping framework-specific job dispatching commands to the native AMQP protocol. The driver is designed to be compatible with the native dashboard interface for monitoring and managing background jobs. It supports high-volume job processing through persistent connection streaming, which maintains long-lived network sockets to the broker to reduce la

    PHPamqphorizonlaravel
    View on GitHub↗2,117
Compare all 30 related projects→

Frequently asked questions

What does pika/pika do?

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.

What are the main features of pika/pika?

The main features of pika/pika are: AMQP Protocol Clients, AMQP, Message Broker Connectivity, RabbitMQ Integrations, Connection Lifecycle State Machines, Connection Lifecycle Managers, Automatic Connection Recovery, Non-Blocking Event Loops.

Which projects share features with pika/pika?

Projects with overlapping indexed features include: squaremo/amqp.node — amqp.node is a Node.js client and asynchronous messaging middleware designed for communicating with message brokers… php-amqplib/php-amqplib — php-amqplib is a PHP library that implements the AMQP protocol to enable communication between applications and… streadway/amqp — This is a Go client library and protocol implementation for interacting with message brokers using the AMQP 0.9.1… vyuldashev/laravel-queue-rabbitmq — This project provides a queue driver that integrates RabbitMQ as a message broker within the Laravel framework. It… senecajs/seneca — Seneca is a message-driven architecture framework and microservices toolkit for Node.js. It functions as a distributed… apple/swift-nio — Swift NIO is a low-level, event-driven network framework for the Swift language. It serves as an asynchronous network…