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

    На конференции 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», я оставил без перевода, а также взял на себя смелость использовать в тексте англицизмы, так как считаю, что дотошный перевод технических текстов может искажать изначальный смысл или затруднять его понимание. Прошу меня за это простить.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 2

      0
      Спустя три года ситуация такая же, или есть что-то предпочтительнее?
        0
        asyncpg всё ещё остаётся единственной действительно асинхронной библиотекой для доступа к БД.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое