Metadata-Version: 2.1 Name: asyncpg Version: 0.27.0 Summary: An asyncio PostgreSQL driver Home-page: https://github.com/MagicStack/asyncpg Author: MagicStack Inc Author-email: hello@magic.io License: Apache License, Version 2.0 Platform: macOS Platform: POSIX Platform: Windows Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: AsyncIO Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Microsoft :: Windows Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Topic :: Database :: Front-Ends Requires-Python: >=3.7.0 License-File: LICENSE License-File: AUTHORS Requires-Dist: typing-extensions (>=3.7.4.3) ; python_version < "3.8" Provides-Extra: dev Requires-Dist: Cython (<0.30.0,>=0.29.24) ; extra == 'dev' Requires-Dist: pytest (>=6.0) ; extra == 'dev' Requires-Dist: Sphinx (~=4.1.2) ; extra == 'dev' Requires-Dist: sphinxcontrib-asyncio (~=0.3.0) ; extra == 'dev' Requires-Dist: sphinx-rtd-theme (~=0.5.2) ; extra == 'dev' Requires-Dist: flake8 (~=5.0.4) ; extra == 'dev' Requires-Dist: uvloop (>=0.15.3) ; (platform_system != "Windows") and extra == 'dev' Provides-Extra: docs Requires-Dist: Sphinx (~=4.1.2) ; extra == 'docs' Requires-Dist: sphinxcontrib-asyncio (~=0.3.0) ; extra == 'docs' Requires-Dist: sphinx-rtd-theme (~=0.5.2) ; extra == 'docs' Provides-Extra: test Requires-Dist: flake8 (~=5.0.4) ; extra == 'test' Requires-Dist: uvloop (>=0.15.3) ; (platform_system != "Windows") and extra == 'test' asyncpg -- A fast PostgreSQL Database Client Library for Python/asyncio ======================================================================= .. image:: https://github.com/MagicStack/asyncpg/workflows/Tests/badge.svg :target: https://github.com/MagicStack/asyncpg/actions?query=workflow%3ATests+branch%3Amaster :alt: GitHub Actions status .. image:: https://img.shields.io/pypi/v/asyncpg.svg :target: https://pypi.python.org/pypi/asyncpg **asyncpg** is a database interface library designed specifically for PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation of PostgreSQL server binary protocol for use with Python's ``asyncio`` framework. You can read more about asyncpg in an introductory `blog post `_. asyncpg requires Python 3.7 or later and is supported for PostgreSQL versions 9.5 to 15. Older PostgreSQL versions or other databases implementing the PostgreSQL protocol *may* work, but are not being actively tested. Documentation ------------- The project documentation can be found `here `_. Performance ----------- In our testing asyncpg is, on average, **3x** faster than psycopg2 (and its asyncio variant -- aiopg). .. image:: https://raw.githubusercontent.com/MagicStack/asyncpg/master/performance.png :target: https://gistpreview.github.io/?b8eac294ac85da177ff82f784ff2cb60 The above results are a geometric mean of benchmarks obtained with PostgreSQL `client driver benchmarking toolbench `_ in November 2020 (click on the chart to see full details). Features -------- asyncpg implements PostgreSQL server protocol natively and exposes its features directly, as opposed to hiding them behind a generic facade like DB-API. This enables asyncpg to have easy-to-use support for: * **prepared statements** * **scrollable cursors** * **partial iteration** on query results * automatic encoding and decoding of composite types, arrays, and any combination of those * straightforward support for custom data types Installation ------------ asyncpg is available on PyPI and has no dependencies. Use pip to install:: $ pip install asyncpg Basic Usage ----------- .. code-block:: python import asyncio import asyncpg async def run(): conn = await asyncpg.connect(user='user', password='password', database='database', host='127.0.0.1') values = await conn.fetch( 'SELECT * FROM mytable WHERE id = $1', 10, ) await conn.close() loop = asyncio.get_event_loop() loop.run_until_complete(run()) License ------- asyncpg is developed and distributed under the Apache 2.0 license.