aioaws
Asyncio SDK for some AWS services.
What it is and what it does
aioaws is a minimal, type-hinted asyncio SDK for three AWS services: S3 (upload, download, list, delete, signed URLs), SES (email with attachments and multipart), and SNS (webhook verification). It implements AWS Signature Version 4 authentication from scratch and depends only on aiofiles, cryptography, httpx, and pydantic—no boto or boto3. The library is formatted with black and passes mypy in strict mode, making it suitable for codebases that prioritize type safety and debuggability.
The package is stable and production-ready but dormant: the last release was 2024-08-16 and the last commit in 2024-11-18. It works well for developers who want a lightweight, async-first alternative for specific AWS services, but you should expect no active maintenance or new features. The small dependency footprint and clean API make it attractive for serverless functions or microservices where bundle size matters.
Use it for:
- Upload and manage files in S3 from async Python applications without boto3 overhead.
- Send transactional emails via SES with attachments in async contexts (e.g., FastAPI handlers).
- Verify and process SES delivery notifications via SNS webhooks in web frameworks.
- Generate signed S3 URLs for direct browser uploads or time-limited downloads.
- Build lightweight AWS integrations in serverless functions where minimal dependencies are critical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Lightweight asyncio SDK for AWS S3, SES, and SNS services with clean, type-hinted APIs and AWS Signature Version 4 authentication, built without boto or boto3.
Yes, if you need async S3, SES, or SNS access and want to avoid boto3's weight and complexity. The type hints, clean API, and permissive MIT license make it a solid choice for new async projects. No, if you require active maintenance, frequent updates, or comprehensive AWS service coverage—the package is dormant and covers only three services. Yes-with-conditions if you're already committed to asyncio and can live with no upstream support; test thoroughly in your environment first.
Install
aioaws on PyPI
pip
pip install aioawsuv
uv add aioawspoetry
poetry add aioawsInstalling aioaws
Before you install
Low install friction with five lean runtime dependencies. The package is marked Production/Stable and supports Python 3.10+. Maintenance is dormant—last commit was 2024-11-18 and no release since 2024-08-16—so expect no active bug fixes or feature updates, though the codebase is stable.
License in practice
MIT license (permissive) means you can use, modify, and distribute this package freely in commercial or private projects with minimal legal friction.
Quickstart
pip install aioaws
from aioaws.s3 import S3Client, S3Config
from httpx import AsyncClient
async with AsyncClient() as client:
s3 = S3Client(client, S3Config('access_key', 'secret_key', 'region', 'bucket.com'))
await s3.upload('path/to/file.txt', b'content')
files = [f async for f in s3.list()]
Requires Python 3.10 or later; you must provide AWS credentials (access key, secret key, region) and an httpx.AsyncClient instance.
Verify before relying
- Whether SNS signature verification works with current AWS SNS certificate formats and rotation practices.
- Performance characteristics under high concurrency or large file uploads compared to other async AWS clients.
- Whether the library handles all AWS S3 error responses and edge cases in production workloads.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — aiofiles, cryptography, httpx, pydantic-settings, pydantic |
| Maintenance | dormant — 728 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 104,613/month — #12,742 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aioaws-0.15.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
aiomotoProvides async-compatible AWS service mocks for…
permissive · top 15,000 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
botoBoto is a Python interface to Amazon Web…
permissive · top 5,000 on PyPI
amazon-sns-extended-clientExtends boto3's SNS client to publish messages…
permissive · top 15,000 on PyPI
types-aiobotocore-sesProvides type annotations and IDE…
permissive · top 15,000 on PyPI
types-boto3-sesProvides type annotations and IDE…
permissive · top 5,000 on PyPI
botocoreBotocore provides low-level, data-driven access…
permissive · top 100 on PyPI
boto3-type-annotationsProvides type-annotated stand-in classes for…
permissive · top 5,000 on PyPI
mypy-boto3-sesProvides type annotations for boto3 SES 1.43.0,…
permissive · top 5,000 on PyPI
boto3-type-annotations-with-docsProvides type-annotated stand-in classes for…
permissive · top 15,000 on PyPI