asyncpg

Languages and libraries

database driver

SHOW HN2016

296points
89comments
#67of 2,264 in 2016
Top 3%of 2016 by points

How HN took it

LovedMost comments that take a side are positive

6 positive, 31 neutral or asking, 1 mixed, 1 critical, out of 39 comments about the project. Thread score +0.13.

Performance: 2 for, 1 againstIdea: 2 for, 0 againstExecution: 2 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Fast setup and easy install on OSX

    From 1 comment
    • Fastest setup of a PG client, to date, on OSX for me. No nuances or other package installers like Fink necessary.
      rambos on HN
  • Strong performance for database fetching

    From 2 comments
    • At 3.7GHz that's roughly 3700 clock cycles per row. With something that low, I'd be really interested to see a breakdown of how many cycles were spent doing what.
      userbinator on HN
    • the 1M row/sec part is easy to explain: > asyncpg extensively uses PostgreSQL prepared statements. This is an important optimization feature, as it allows to avoid repeated…
      zzzeek on HN

Objections

  • New driver may lack stability compared to psycopg2

    From 2 comments
    • I have no intention to stifle anything, I'm only raising the point that this seems like a really new driver and it's likely that it would take a while before it approaches the…
      zzzeek on HN
    • Does this library address any of the issues/concerns that Mike Bayer discussed in this earlier blog post? http://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/
      Dowwie on HN
  • Benchmark run single-threaded, unfair to Go

    From 1 comment
    • > For fairness, all tests were run in a single-thread (GOMAXPROCS=1 for Go code) in async mode. Isn't this just hobbling Go so you can beat it? Doesn't seem like something done…
      jargino on HN
  • Async adds little speed for typical database workloads

    From 2 comments
    • the 1M row/sec part is easy to explain: > asyncpg extensively uses PostgreSQL prepared statements. This is an important optimization feature, as it allows to avoid repeated…
      zzzeek on HN
    • > This simply isn't true for all use cases. Everytime I talk about my blog post, I am super careful to qualify: in this case, "usually has little to do w/ speed" and other…
      zzzeek on HN

Requests

  • Synchronous version of the driver

    From 3 comments
    • Sorry to interrupt: You two can click on the timestamp to answer your posts. Please continue, we are listening carefully. And since I am already here @1st1: How hard would it be…
      allendoerfer on HN
    • > I guess I am frustrated that you folks put all this work into a great driver and then locked it in the largely useless dungeon of asyncio, where all the libraries are totally…
      RedCrowbar on HN
    • I think you should open a bounty for it. As questions like "Can I use this with Django/SQLAlchemy/…?" showed, people love drop-in replacements that speed up their code,…
      allendoerfer on HN
  • Django support

    From 2 comments
    • would this work with django?
      bedros on HN
    • Cool! Wish there would be a Django wrapper, but then realised it is designed for asyncio
      wampler on HN
  • Add command-line psql to benchmarks

    From 1 comment
    • i'd love to see raw, command-line psql added to these benchmarks
      xgess on HN

Questions

  • Does it handle datetimes and escaping automatically?

    From 1 comment
    • Does this automatically escape/convert things like datetimes in a query or does that need to be done separately? The docs are a little sparse on details. Looks fantastic anyway!
      Veratyr on HN
  • Does it work with Amazon Redshift?

    From 1 comment
  • Would PyPy be supported given Cython?

    From 1 comment
    • Using Cython means you don't/can't use Pypy? Was that something you considered, e.g. with psycopg2cffi or a pure-python driver? It seems to be the defacto performant runtime for…
      pxlfkr on HN

Alternatives named

  • psycopg2

    From 2 comments
    • the 1M row/sec part is easy to explain: > asyncpg extensively uses PostgreSQL prepared statements. This is an important optimization feature, as it allows to avoid repeated…
      zzzeek on HN
    • I have no intention to stifle anything, I'm only raising the point that this seems like a really new driver and it's likely that it would take a while before it approaches the…
      zzzeek on HN
  • pg8000

    From 1 comment
    • the 1M row/sec part is easy to explain: > asyncpg extensively uses PostgreSQL prepared statements. This is an important optimization feature, as it allows to avoid repeated…
      zzzeek on HN
  • epgsql (Erlang)

    From 1 comment
    • Wonder how this (Erlang driver) would stack up in the benchmarks (devel branch): https://github.com/epgsql/epgsql
      davidw on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/12227507)