aiodynamodb
Async DynamoDB client + lightweight model layer built on aioboto3 and Pydantic v2.
Features
- Fully async API built on
aioboto3 - Pydantic v2 models for validation and typed data access
- Table mapping via
@table(...)decorator with GSI/LSI support - Persistent connection pooling via context manager
- Query and scan with typed, paginated results
- Conditional writes/deletes, transactions, and batch operations
AI Disclaimer
Some code and content in this repository was created with the assistance of AI tools. All code is reviewed thoroughly.
Installation
pip install aiodynamodb
Quickstart
import asyncio
from aiodynamodb import DynamoDB, DynamoModel, HashKey, table
@table("users")
class User(DynamoModel):
user_id: HashKey[str]
name: str
email: str | None = None
async def main() -> None:
async with DynamoDB() as db:
await db.create_table(User)
await db.put(User(user_id="u1", name="Alice", email="alice@example.com"))
user = await db.get(User, hash_key="u1")
print(user)
asyncio.run(main())
Documentation
Full documentation is available at aiodynamodb.com, including:
- Getting Started
- Guides — CRUD, queries, scans, transactions, batch ops, custom types, and more
- API Reference
Contributing
Clone the repo and install dev dependencies:
make install-dev
Make your changes, then:
make lint # lint and format
make typecheck # type check
make test # run tests
Release files for aiodynamodb 0.0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiodynamodb-0.0.13.tar.gz | 209.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiodynamodb-0.0.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 234.1 kB
Release files / aiodynamodb-0.0.13.tar.gz
| Download URL | aiodynamodb-0.0.13.tar.gz |
|---|---|
| Size | 209.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1948d3cf1737dbeac4244c1d38dee85295f3ad07030e48407b3ba7cc01fa3233
|
|
BLAKE2b-256 checksum How to use checksums |
9bc186570b27cfe31a75e397d506c19af29b35e16f66c99a64d77378710f33a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / aiodynamodb-0.0.13-py3-none-any.whl
| Download URL | aiodynamodb-0.0.13-py3-none-any.whl |
|---|---|
| Size | 25.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
85f696796f905edfa0af645a964e86cbb222d028f61d63d93f5d357e25cc1920
|
|
BLAKE2b-256 checksum How to use checksums |
597dff40028c450a4f59cc0779a087d937e46c97e99b19c974401c55c61eb84e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency log