Metadata-Version: 2.1
Name: rabbitleap
Version: 0.1.1
Summary: Simple RabbitMQ consuming framework
Home-page: https://github.com/asahaf/rabbitleap
Author: Ahmed AlSahaf
Author-email: me@asahaf.com
License: MIT
Keywords: rabbitmq,messaging,message,consumer,consuming,framework
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Communications
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Pike Modules
Classifier: Topic :: Software Development :: Object Brokering
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
Requires-Dist: pika

.. image:: https://travis-ci.org/asahaf/rabbitleap.svg?branch=master
    :target: https://travis-ci.org/asahaf/rabbitleap

##########
RabbitLeap
##########

RabbitLeap is a simple RabbitMQ consuming framework. It's built on top of Pika, a RabbitMQ client library for Python.

Features
========
- Automatically recovers from connection failures
- Configurable retry policy for handing failures
- Automatically route messages to handlers, based on custom logic and different message properties

Installation
============
.. code-block:: console

    $ pip install rabbitleap

Hello, world
============

.. code-block:: python

    from rabbitleap.consumer import Consumer
    from rabbitleap.handling import MessageHandler


    class RabbitEatHandler(MessageHandler):

        def handle(self):
            print('rabbit eat: {}'.format(self.envelope.payload.decode('utf-8')))

    consumer_queue_name = 'consumer_queue'
    amqp_url = r'amqp://guest:guest@localhost:5672/%2f'

    consumer = Consumer(amqp_url=amqp_url, queue_name=consumer_queue_name)
    # route message of type `rabbit.eat` to RabbitEatHandler
    consumer.add_handler(r'rabbit\.eat', RabbitEatHandler)

    try:
        consumer.start()
    except KeyboardInterrupt:
        consumer.stop()

Documentation
=============
Documentation and resources are available at https://rabbitleap.readthedocs.io


