Skip to main content

aiosqs

pypi PyPI - Downloads

About package

Python asynchronous and lightweight SQS client. The goal of this library is to provide fast and optimal access to SQS for Python projects, e.g. when you need a high-load queue consumer or high-load queue producer written in Python.

Supports Python versions 3.8, 3.9, 3.10, 3.11, 3.12.

Supported and tested Amazon-like SQS providers: Amazon, VK Cloud.

Why aiosqs?

Main problem of botocore and aiobotocore is huge memory and CPU consumption. Also aiobotocore itself is a transition of botocore to async interface without any optimizations.

Related issues:

Installation

pip install aiosqs

Usage

Create a client:

from aiosqs import SQSClient

client = SQSClient(
    aws_access_key_id="access_key_id",
    aws_secret_access_key="secret_access_key",
    region_name="us-west-2",
    host="sqs.us-west-2.amazonaws.com",
)

Receive the queue url by queue name:

response = await client.get_queue_url(queue_name=queue_name)
queue_url = response["QueueUrl"]

Send a message to the queue:

response = await client.send_message(
    queue_url=queue_url,
    message_body=json.dumps({"demo": 1, "key": "value"}),
    delay_seconds=0,
)
print(response)

Receive a message from the queue:

response = await client.receive_message(
    queue_url=queue_url,
    max_number_of_messages=1,
    visibility_timeout=30,
)
if response:
    print(response)
    receipt_handle = response[0]["ReceiptHandle"]

Delete the message from the queue:

await client.delete_message(
    queue_url=queue_url,
    receipt_handle=receipt_handle,
)

Close the client at the end:

await client.close()

Another option is to use SQSClient as an async context manager. No need to call close manually in this case. Example:

from aiosqs import SQSClient

async with SQSClient(
    aws_access_key_id="access_key_id",
    aws_secret_access_key="secret_access_key",
    region_name="us-west-2",
    host="sqs.us-west-2.amazonaws.com",
) as client:
    response = await client.get_queue_url(queue_name="dev_orders")
    queue_url = response["QueueUrl"]
    print(queue_url)

Metadata

Release files for aiosqs 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiosqs 1.0.6
File Size Uploaded
aiosqs-1.0.6.tar.gz 57.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiosqs 1.0.6
File Interpreter ABI Platform
aiosqs-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 77.7 kB

Release files / aiosqs-1.0.6.tar.gz

Download URL aiosqs-1.0.6.tar.gz
Size 57.5 kB
Tags Source
SHA-256 checksum
How to use checksums
53cd3bb08ad03d610bc93c182e0ac50b982decaa9028bf9a131c479901e39c1d
BLAKE2b-256 checksum
How to use checksums
b9d2e330e7008a85869aa5ca082076dcf32db9827e2a943855d714ede7d65ea2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release files / aiosqs-1.0.6-py3-none-any.whl

Download URL aiosqs-1.0.6-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95cc950b14d083b492ad35733626aeff39058a1838173cef81eaa927d723da60
BLAKE2b-256 checksum
How to use checksums
44bee1c3d8c30245e6b357bc3c17e2535cbec07792c4c978d975c466df851547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page