aiomoto
Moto-style AWS service mocks for aiobotocore
Decision gist · record as of 2026-08-14
Yes, if you test async AWS code with aiobotocore. It solves a real gap—Moto does not natively support async clients—and offers low install friction with active maintenance. Pre-alpha status and narrow version constraints mean you should pin versions and monitor releases, but the library is exercised in tests across multiple services and carries no known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; aiobotocore and moto must be installed as runtime dependencies.
- Low friction: pure Python wheel with three runtime dependencies (aiobotocore, moto, platformdirs).
- Actively maintained with a recent release; marked pre-alpha but exercised in tests across multiple AWS services.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
last release 2026-05-30 (76 days) · last repo commit 2026-08-14 · 14 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 100,333 downloads/mo, #12,990 on PyPI
Alternatives
Verify before relying
pip install aiomoto
from aiobotocore.session import AioSession
from aiomoto import mock_aws
async def demo():
async with mock_aws():
session = AioSession()
async with session.create_client("s3", region_name="us-east-1") as s3:
result = await s3.list_buckets()- Whether free-threaded CPython support is production-ready or still experimental.
- Performance characteristics when mocking large datasets or high-concurrency workloads.
- Stability guarantees given pre-alpha status and narrow version ranges.
- Whether sync and async clients can truly share state in all tested service scenarios.
What it is and what it does
aiomoto is a testing library that extends Moto's AWS service mocking to work with async code. It lets you write tests that use both synchronous botocore clients and asynchronous aiobotocore clients against the same in-memory mock backend in a single process. This solves the problem of testing async AWS code without either spinning up a real AWS environment or running a separate Moto server.
The library wraps Moto's stubber to make it work with async contexts and decorators. It actively supports S3 (CRUD, listings, streaming), DynamoDB, Secrets Manager, SES, SNS, SQS, KMS, STS, Lambda, Events, and Kafka/MSK, with many other Moto services often working out of the box. It depends on aiobotocore, moto, and platformdirs, and targets Python 3.11 or later.
Use it for
- Test async code that calls S3 or DynamoDB without mocking infrastructure or a separate server.
- Write integration tests for applications using aiobotocore across multiple AWS services.
- Validate data pipelines that read from and write to mock S3 buckets using async clients.
- Test SQS/SNS event handling in async code without deploying to AWS.
- Develop and debug async code locally with deterministic, in-process mocks.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you test async AWS code with aiobotocore.
It solves a real gap—Moto does not natively support async clients—and offers low install friction with active maintenance. Pre-alpha status and narrow version constraints mean you should pin versions and monitor releases, but the library is exercised in tests across multiple services and carries no known vulnerabilities.
Install
aiomoto on PyPI
Before you install
Low friction: pure Python wheel with three runtime dependencies (aiobotocore, moto, platformdirs). Actively maintained with a recent release; marked pre-alpha but exercised in tests across multiple AWS services.
Requires Python 3.11 or later; aiobotocore and moto must be installed as runtime dependencies.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install aiomoto
from aiobotocore.session import AioSession
from aiomoto import mock_aws
async def demo():
async with mock_aws():
session = AioSession()
async with session.create_client("s3", region_name="us-east-1") as s3:
result = await s3.list_buckets()
Verify before relying
- Whether free-threaded CPython support is production-ready or still experimental.
- Performance characteristics when mocking large datasets or high-concurrency workloads.
- Stability guarantees given pre-alpha status and narrow version ranges.
- Whether sync and async clients can truly share state in all tested service scenarios.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesaiobotocoremotoplatformdirs |
| Maintenance | Actively maintained 76 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 100,333 / month, #12,990 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Free Threading :: 3 - StableProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: LibrariesTopic :: Software Development :: Testing |
Evidence: aiomoto-0.5.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “async AWS mocking”
- aiomotoProvides async-compatible AWS service mocks for aiobotocore that…
- moto-extMocks AWS services for testing by intercepting boto3 calls, allowing…
- placeboPlacebo records and replays AWS API calls without hitting actual…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also aioaws · aioboto3 · aiobotocore · moto · moto-ext · dvc-s3 · opentelemetry-instrumentation-botocore · localstack-client · py-key-value-aio · boto