Skip to main content

Asynchronous framework for working with RabbitMQ

Project description

aiocarrot

aiocarrot is a fully asynchronous framework for working with the RabbitMQ message broker

Tests Version

Source Code: https://github.com/d3nbr0/aiocarrot


The key features are:

  • Completely asynchronous - aiocarrot has the aiopika library running under the hood
  • Fast to code - the framework allows you to reduce the amount of code in your project, as well as speed up its development
  • Fields validation - aiocarrot supports field validation using pydantic

Requirements

The following dependencies are required for aiocarrot to work:

Installation

Create and activate virtual environment and then install aiocarrot:

pip install aiocarrot

Example

Create a file main.py with:

from aiocarrot import Carrot, Consumer

import asyncio


consumer = Consumer()


@consumer.message(name='multiply')
async def multiply(first_number: int, second_number: int) -> None:
    print('Result is:', first_number * second_number)


async def main() -> None:
    carrot = Carrot(url='amqp://guest:guest@127.0.0.1/', queue_name='sample')
    carrot.setup_consumer(consumer)
    await carrot.run()


if __name__ == '__main__':
    asyncio.run(main())

Then run it with:

python main.py

Now you have created a consumer with the ability to receive a "multiply" task

Produce message

If you want to send a message, use this:

from aiocarrot import Carrot

import asyncio


async def main() -> None:
    carrot = Carrot(url='amqp://guest:guest@127.0.0.1:5672/', queue_name='sample')
    
    await carrot.send('multiply', first_number=10, second_number=20)


if __name__ == '__main__':
    asyncio.run(main())

You can find more examples here

It's very simple to use. Enjoy!

Project details


Download files

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

Source Distribution

aiocarrot-1.0.6.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiocarrot-1.0.6-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file aiocarrot-1.0.6.tar.gz.

File metadata

  • Download URL: aiocarrot-1.0.6.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for aiocarrot-1.0.6.tar.gz
Algorithm Hash digest
SHA256 2ca746a16cb2e56cf692ee33f3cfd13fb2f72ff1abf91a1db72c3b21706b1cd7
MD5 8fc1a5d688c71bf30aff9193330ab308
BLAKE2b-256 026cfa3b0430c6a493d17e3adaf03297bf5b81211a5fb854384aa6014aa89f37

See more details on using hashes here.

File details

Details for the file aiocarrot-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: aiocarrot-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for aiocarrot-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4eeff825e055014bf344aafd28a9ab25940cf9daac405d9a56da03cb12c63d6e
MD5 e5c4123f4d25b4398b900e2bf8eaab19
BLAKE2b-256 234eb02b7dd37d4f4dcf7c482c6792b9722eb61ba092f1dd1f8623fa406e3432

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page