Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/georgeyk/loafer
Asynchronous message dispatcher - Currently using asyncio and amazon SQS
https://github.com/georgeyk/loafer
asyncio dispatcher message-broker microservice python3 queue sns sqs
Last synced: 3 days ago
JSON representation
Asynchronous message dispatcher - Currently using asyncio and amazon SQS
- Host: GitHub
- URL: https://github.com/georgeyk/loafer
- Owner: georgeyk
- License: mit
- Created: 2016-04-09T17:55:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T18:01:11.000Z (over 1 year ago)
- Last Synced: 2024-09-25T15:38:25.742Z (about 1 month ago)
- Topics: asyncio, dispatcher, message-broker, microservice, python3, queue, sns, sqs
- Language: Python
- Homepage:
- Size: 304 KB
- Stars: 112
- Watchers: 8
- Forks: 23
- Open Issues: 6
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-list-microservice - loafer - Currently using asyncio and amazon SQS (python3)
- starred-awesome - loafer - Asynchronous message dispatcher - Currently using asyncio and amazon SQS (Python)
README
Loafer
======|PyPI latest| |PyPI Version| |PyPI License| |Docs|
|CI Build Status| |Coverage Status| |Requirements Status|
|Scrutinizer Code Quality| |Code Climate|----
Loafer is an asynchronous message dispatcher for concurrent tasks processing.
**Currently, only AWS SQS is supported**
Features:
* Encourages decoupling from message providers and consumers
* Easy to extend and customize
* Easy error handling, including integration with sentry
* Easy to create one or multiple services
* Generic Handlers
* Amazon SQS integrationIt requires Python 3.6+ and is very experimental at the moment, expect a lot
of changes until the first major version.Example
~~~~~~~A simple message forwader, from ``source-queue`` to ``destination-queue``:
.. code:: python
from loafer.ext.aws.handlers import SQSHandler
from loafer.ext.aws.routes import SQSRoute
from loafer.managers import LoaferManagerroutes = [
SQSRoute('source-queue', handler=SQSHandler('destination-queue')),
]if __name__ == '__main__':
manager = LoaferManager(routes)
manager.run()Documentation
~~~~~~~~~~~~~Check out the latest **Loafer** full documentation at `Read the Docs`_ website.
.. _`Read the Docs`: http://loafer.readthedocs.org/
.. |Docs| image:: https://readthedocs.org/projects/loafer/badge/?version=latest
:target: http://loafer.readthedocs.org/en/latest/?badge=latest
.. |CI Build Status| image:: https://circleci.com/gh/georgeyk/loafer.svg?style=svg
:target: https://circleci.com/gh/georgeyk/loafer
.. |Coverage Status| image:: https://codecov.io/gh/georgeyk/loafer/branch/master/graph/badge.svg
:target: https://codecov.io/gh/georgeyk/loafer
.. |Requirements Status| image:: https://requires.io/github/georgeyk/loafer/requirements.svg?branch=master
:target: https://requires.io/github/georgeyk/loafer/requirements/?branch=master
.. |Scrutinizer Code Quality| image:: https://scrutinizer-ci.com/g/georgeyk/loafer/badges/quality-score.png?b=master
:target: https://scrutinizer-ci.com/g/georgeyk/loafer/?branch=master
.. |Code Climate| image:: https://codeclimate.com/github/georgeyk/loafer/badges/gpa.svg
:target: https://codeclimate.com/github/georgeyk/loafer
.. |PyPI Version| image:: https://img.shields.io/pypi/pyversions/loafer.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/loafer
.. |PyPI License| image:: https://img.shields.io/pypi/l/loafer.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/loafer
.. |PyPI latest| image:: https://img.shields.io/pypi/v/loafer.svg?maxAge=2592000
:target: https://pypi.python.org/pypi/loafer