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.7.tar.gz (9.3 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.7-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aiocarrot-1.0.7.tar.gz
  • Upload date:
  • Size: 9.3 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.7.tar.gz
Algorithm Hash digest
SHA256 48e390ba9cf2d0705539a188cefb660efecf90eef39666a134c36964160ea626
MD5 96d6aeb6da1aac31cf44ddea3d190ce3
BLAKE2b-256 0399b8094fab33ff1fed1ddb3a8d3cd532a7bcc9c0a305b1559382042086755f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aiocarrot-1.0.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 cb34db81e55b39f96a43de118ba2218a4bf922bc14e33238615339ef322c008c
MD5 084213562c3243d33d855e6098ba6ca5
BLAKE2b-256 dd72bd04ad51c88c836f61dbcf994f494aa15cf4e152418eefc2e15ca9ba0793

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