Hide navigation sidebar
Hide table of contents sidebar
Back to top
Edit this page
Toggle table of contents sidebar

# Welcome to aio-pika’s documentation!

aio-pika is a wrapper for the aiormq for asyncio and humans.

## Features

- Completely asynchronous API.

- Object oriented API.

- Transparent auto-reconnects with complete state recovery with connect_robust (e.g. declared queues or exchanges, consuming state and bindings).

- Python 3.6+ compatible.

- For python 3.5 users available aio-pika<7

- Transparent publisher confirms support

- Transactions support

- Completely type-hints coverage.

## Installation

Installation with pip:

    pip install aio-pika

Installation from git:

    # via pip
    pip install https://github.com/mosquito/aio-pika/archive/master.zip

    # manually
    git clone https://github.com/mosquito/aio-pika.git
    cd aio-pika
    python setup.py install

## Development

Clone the project:

    git clone https://github.com/mosquito/aio-pika.git
    cd aio-pika

Create a new virtualenv for aio-pika:

    virtualenv -p python3.5 env

Install all requirements for aio-pika:

    env/bin/pip install -e '.[develop]'

## Table Of Contents

- Quick start
  - Simple consumer
  - Simple publisher
  - Asynchronous message processing
  - Working with RabbitMQ transactions
  - Get single message example
  - Set logging level
  - Tornado example
  - External credentials example
  - Connection pooling
- Patterns and helpers
  - Master/Worker
  - RPC
  - Extending
- RabbitMQ tutorial
  - Introduction
    - Hello World!
    - Sending
    - Receiving
    - Putting it all together
  - Work Queues
    - Preparation
    - Round-robin dispatching
    - Message acknowledgment
    - Message durability
    - Fair dispatch
    - Putting it all together
  - Publish/Subscribe
    - Exchanges
    - Temporary queues
    - Bindings
    - Putting it all together
  - Routing
    - Bindings
    - Direct exchange
    - Multiple bindings
    - Emitting logs
    - Subscribing
    - Putting it all together
  - Topics
    - Topic exchange
    - Putting it all together
  - Remote procedure call (RPC)
    - Client interface
    - Callback queue
    - Correlation id
    - Summary
    - Putting it all together
- API Reference

## Thanks for contributing

- @mosquito (author)

- @decaz (steel persuasiveness while code review)

- @heckad (bug fixes)

- @smagafurov (bug fixes)

- @hellysmile (bug fixes and ideas)

- @altvod (bug fixes)

- @alternativehood (bugfixes)

- @cprieto (bug fixes)

- @akhoronko (bug fixes)

- @iselind (bug fixes)

- @DXist (bug fixes)

- @blazewicz (bug fixes)

- @chibby0ne (bug fixes)

- @jmccarrell (bug fixes)

- @taybin (bug fixes)

- @ollamh (bug fixes)

- @DriverX (bug fixes)

- @brianmedigate (bug fixes)

- @dan-stone (bug fixes)

- @Kludex (bug fixes)

- @bmario (bug fixes)

- @tzoiker (bug fixes)

- @Pehat (bug fixes)

- @WindowGenerator (bug fixes)

- @dhontecillas (bug fixes)

- @tilsche (bug fixes)

- @leenr (bug fixes)

- @la0rg (bug fixes)

- @SolovyovAlexander (bug fixes)

- @kremius (bug fixes)

- @zyp (bug fixes)

- @kajetanj (bug fixes)

- @Alviner (moral support, debug sessions and good mood)

- @Pavkazzz (composure, and patience while debug sessions)

- @bbrodriges (supplying grammar while writing documentation)

- @dizballanze (review, grammar)

# Versioning

This software follows Semantic Versioning