Skip to main content

RabbitMQ backend for ASGI

Project description

Build Status Coverage Status

RabbitMQ backend for ASGI.

ASGI is a standard interface between network protocol servers (particularly web servers) and Python applications (Django Channels), intended to allow handling of multiple common protocol styles (including HTTP, HTTP2, and WebSocket).

Channels loads into Django as a pluggable app to bring WebSocket, long-poll HTTP, task offloading and other asynchrony support to your code, using familiar Django design patterns and a flexible underlying framework that lets you not only customize behaviours but also write support for your own protocols and needs.

docs/img/infrastructure.png

Installation

You can install the most recent available version from PyPI:

pip install asgi_rabbitmq

Usage

To use RabbitMQ broker as your channels layer add following lines to your django settings

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'asgi_rabbitmq.RabbitmqChannelLayer',
        # Change according to your project layout:
        'ROUTING': 'myproject.routing.routes',
        'CONFIG': {
            'url': 'amqp://guest:guest@rabbitmq:5672/%2F',
        },
    },
}

Now you can use channels project as usual:

daphne myproject.asgi:channel_layer
django-admin runworker

License

ASGI RabbitMQ layer is offered under 3-terms BSD license.

Changelog

0.5.5 (2017-12-02)

  • Pin asgiref required version to be compatible with ASGI 1.x spec.

0.5.4 (2017-10-22)

  • Upgrade pika library to the 0.11. Fix some framing errors.

0.5.3 (2017-08-08)

  • Drop group membership marker on continuous group_add calls.
  • Fix send to the empty group.

0.5.2 (2017-06-07)

  • Don’t try to start connection thread twice.

0.5.1 (2017-06-06)

  • Fix AttributeError on Thread access. Issue #6.

0.5 (2017-05-28)

  • Resource cleanup.
  • Start connection on first network operation call.

0.4.1 (2017-04-15)

  • Add __version__ variable to pass channels package compatibility test.

0.4 (2017-04-15)

  • New style process local channels support. This version is compatible with ASGI reference >= 1.1
  • Declared queues cache was introduced. Channels worker bootstrap hook was removed.
  • Python 3.6 and Django 1.11 compatibility.
  • Connection and AMQP channels level errors are propagated to the caller thread.
  • TEST_CONFIG support for test case mixin.

0.3 (2017-03-28)

  • Add RabbitmqLocalChannelLayer to use RabbitMQ layer together with IPC.
  • Add RabbitmqLayerTestCaseMixin to use with Channels live server test case.
  • Improved thread locking mechanism.
  • Cryptography support.
  • Layer channel_capacity option support.

0.2 (2017-01-29)

  • Significant speed improvement for layer receive method.

0.1 (2017-01-13)

  • Initial public release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
asgi_rabbitmq-0.5.5-py2-none-any.whl (15.4 kB) Copy SHA256 hash SHA256 Wheel py2
asgi_rabbitmq-0.5.5-py3-none-any.whl (15.4 kB) Copy SHA256 hash SHA256 Wheel py3
asgi_rabbitmq-0.5.5.tar.gz (13.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page