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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiocarrot-1.0.4.tar.gz
Algorithm Hash digest
SHA256 14b2f86a12f7371a274fa511f359caf2948deed54b0d5fa0a96e6d0a321e5b60
MD5 ee0c8657e393a1f60e269d17c4ea5709
BLAKE2b-256 79e06d4d6ddb20974868866fe604b953ed6e29ea92e7dfcd62ba3f833b6809f7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for aiocarrot-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a8486ddcb44062b6f5320d66cd052e8fb27b8ab6a2b7fc4e8e0e87963438d564
MD5 cb78d5b86d7c87f13c938a0c9edbe527
BLAKE2b-256 7f68a9357f57a8264d30b94bb6e342246737c673291f04497ee64458fe6fdad4

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