22 July 2016

Вышла asyncpg — клиентская библиотека PostgreSQL для Python/asyncio

PythonPostgreSQL
На конференции EuroPython 2016 Юрий Селиванов (автор async/await-синтаксиса и автор uvloop) представил новую высокопроизводительную библиотеку для асинхронного доступа к PostgreSQL — asyncpg. Тесты демонстрируют в среднем в два раза большую скорость, чем у psycopg2 (и её асинхронного варианта — aiopg).


Причина высоких показателей в том, что asyncpg реализует бинарный протокол PostgreSQL нативно, без использования абстракций, вроде DB-API. Кроме того, это позволило получить простую в использовании реализацию:




Установка


asyncpg доступна на PyPI. Используйте для установки pip:

$ pip install asyncpg


Пример использования


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''')
    await conn.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(run())


P. S. Некоторые термины, такие как «prepared statement», я оставил без перевода, а также взял на себя смелость использовать в тексте англицизмы, так как считаю, что дотошный перевод технических текстов может искажать изначальный смысл или затруднять его понимание. Прошу меня за это простить.
Tags:pythonasynciopostgresqlасинхронность
Hubs: Python PostgreSQL
0
5.6k 20
Comments 2