asyncpg
Languages and libraries
database driver
SHOW HN2016
How HN took it
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 HNthe 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 HNDoes 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 HNI 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 HNCool! 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 this work/be binary-compatible with Amazon Red Shift?
jamiesonbecker on HN
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 HNI 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