{"id":5837,"library":"aiodynamo","title":"aiodynamo: Asyncio DynamoDB Client","description":"aiodynamo is an asynchronous Python client for Amazon DynamoDB, built using asyncio. It provides a clean, Pythonic API for interacting with DynamoDB, including support for expressions, transactions, and various credential providers. The current version is 24.7, and releases occur somewhat irregularly, often monthly or quarterly, incorporating bug fixes and new features.","status":"active","version":"24.7","language":"en","source_language":"en","source_url":"https://github.com/HENNGE/aiodynamo","tags":["async","aws","dynamodb","database","nosql","asyncio"],"install":[{"cmd":"pip install aiodynamo","lang":"bash","label":"Base Install"},{"cmd":"pip install aiodynamo[httpx]","lang":"bash","label":"Install with httpx client"},{"cmd":"pip install aiodynamo[aiohttp]","lang":"bash","label":"Install with aiohttp client"}],"dependencies":[{"reason":"One of the optional HTTP client backends for communicating with DynamoDB.","package":"httpx","optional":true},{"reason":"One of the optional HTTP client backends for communicating with DynamoDB.","package":"aiohttp","optional":true}],"imports":[{"symbol":"Client","correct":"from aiodynamo import Client"},{"note":"Used for explicit AWS credential configuration.","symbol":"AWSCredentials","correct":"from aiodynamo.credentials import AWSCredentials"},{"note":"Used for building DynamoDB expressions.","symbol":"F","correct":"from aiodynamo.expressions import F"}],"quickstart":{"code":"import asyncio\nimport os\nfrom aiodynamo import Client, AWSCredentials\n\nasync def main():\n    # Configure AWS credentials and region via environment variables\n    # or replace with your actual values.\n    # AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION\n    client = Client(\n        region=os.environ.get(\"AWS_REGION\", \"us-east-1\"),\n        credentials=AWSCredentials(\n            aws_access_key_id=os.environ.get(\"AWS_ACCESS_KEY_ID\", \"\"),\n            aws_secret_access_key=os.environ.get(\"AWS_SECRET_ACCESS_KEY\", \"\"),\n        )\n    )\n    \n    print(\"Attempting to connect to DynamoDB...\")\n    try:\n        # Example: List tables (requires appropriate IAM permissions)\n        response = await client.list_tables()\n        print(f\"DynamoDB Tables: {response.table_names}\")\n    except Exception as e:\n        print(f\"Error interacting with DynamoDB: {e}\")\n    finally:\n        await client.close()\n        print(\"Client closed.\")\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n","lang":"python","description":"This quickstart demonstrates how to initialize the aiodynamo client using environment variables for AWS credentials and region, and then perform a simple operation like listing tables. Remember to install an HTTP client like `httpx` (e.g., `pip install aiodynamo[httpx]`) for the client to function."},"warnings":[{"fix":"Upgrade to Python 3.8 or newer to use aiodynamo versions 23.10 and above.","message":"Support for Python 3.7 was dropped in version 23.10.","severity":"breaking","affected_versions":">=23.10"},{"fix":"Install with an extra, e.g., `pip install aiodynamo[httpx]` or `pip install aiodynamo[aiohttp]`.","message":"aiodynamo requires an HTTP client library (like httpx or aiohttp) to be installed separately. The base `pip install aiodynamo` does not include one.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure you are using `aiodynamo` version 23.10.1 or newer if relying on refreshable credentials.","message":"Version 23.10 introduced a timing issue with refreshable credentials that was fixed in 23.10.1. Older versions might exhibit unstable credential refreshing.","severity":"gotcha","affected_versions":"23.10"},{"fix":"Review and update your logging configuration if you were previously capturing all aiodynamo logs under a single logger and need specific request/response log handling.","message":"Logging for requests and responses was separated into distinct named loggers in version 24.7.","severity":"gotcha","affected_versions":">=24.7"},{"fix":"Ensure your `httpx` installation is at least version 0.15.0 or newer if you encounter dependency conflicts or unexpected behavior with older `httpx` versions.","message":"Versions 21.9 and newer require `httpx>=0.15.0` when using the httpx client backend.","severity":"gotcha","affected_versions":">=21.9"}],"env_vars":null,"last_verified":"2026-04-14T00:00:00.000Z","next_check":"2026-07-13T00:00:00.000Z","problems":[]}