mooq is an asyncio compatible library for interacting with a RabbitMQ AMQP broker.
- Uses asyncio. No more callback hell.
- Simplified and pythonic API to RabbitMQ
- Built on top of the proven pika library
- Comes with an in memory broker for unit testing projects that depend on RabbitMQ
$ pip install mooq
Creating a connection:
conn = await mooq.connect(
host="localhost",
port=5672,
broker="rabbit"
)
Creating a channel of the connection:
chan = await conn.create_channel()
Registering a producer:
await chan.register_producer(
exchange_name="log",
exchange_type="direct")
Registering a consumer and associated callback:
async def yell_it(resp):
print(resp['msg'].upper())
await chan.register_consumer(
exchange_name="log",
exchange_type="direct",
routing_keys=["greetings","goodbyes"],
callback = yell_it)
Publishing a message:
await chan.publish(exchange_name="log",
msg="Hello World!",
routing_key="greetings")
Process messages asynchronously, running associated callbacks:
loop = asyncio.get_event_loop()
loop.create_task(conn.process_events())
More at https://mooq.readthedocs.io
- Docs: https://mooq.readthedocs.io/
- Changelog: https://mooq.readthedocs.io/en/latest/changelog.html
- PyPI: https://pypi.python.org/pypi/mooq
- Issues: https://github.com/jeremyarr/mooq/issues
MIT licensed. See the bundled LICENSE file for more details.