asyncpg
psycopg2
asyncpg | psycopg2 | |
---|---|---|
18 | 20 | |
7,285 | 3,455 | |
1.5% | 0.9% | |
7.7 | 7.9 | |
about 1 month ago | 27 days ago | |
Python | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
asyncpg
-
FastAPI, Pydantic, Psycopg3: the holy trinity for Python web APIs
asyncpg: this was the gold standard async database driver for Postgres, being one of the first to market and most performant. While all other drivers use the C library libpq to interface with Postgres, MagicStack opted to rewrite their own custom implementation and also deviate from Python DBAPI spec. If performance is your main criteria here, then asyncpg is probably the best option.
-
Psycopg 3.2 released – PostgreSQL driver for Python
If you are operating in an environment with asyncio check out asyncpg - https://github.com/MagicStack/asyncpg
Performance charts speak for themselves. This lib uses the binary protocol while most are using text based comms.
- PyPy has been working for me for several years now
-
Ask HN: Is Python async/await some kind of joke?
- SqlAlchemy/asyncpg => you can’t use it if you’re using PgBouncer (necessary most of the time with Postgres) in transaction mode? What?? https://github.com/MagicStack/asyncpg/issues/1058
-
Differences from Psycopg2
OK I stand corrected, asyncpg has these two C files:
https://github.com/MagicStack/asyncpg/blob/master/asyncpg/pr...
https://github.com/MagicStack/asyncpg/blob/master/asyncpg/pr...
If you are interested here is a post by the psycopg author about psycopg2 and 3 and performance versus asyncpg.
https://www.varrazzo.com/blog/2020/05/19/a-trip-into-optimis...
- Asyncpg – A Fast PostgreSQL Database Client Library for Python/Asyncio
-
Ruby Outperforms C: Breaking the Catch-22
This pure Python library claims quite fabulous performance: https://github.com/MagicStack/asyncpg
I believe it because that team have done lots of great stuff but I haven't used it, I just remembered thinking it was interesting the performance was so good. Not sure how related it is to running on the asyncio loop (or which loop they used for benchmarks).
- PgBouncer is useful, important, and fraught with peril
-
Library to connect Python to Postgresql
asyncpg is another great driver if you're using asyncio and want maximum performance (although they also break with DBAPI, but the tradeoff may be worth it).
-
aiopg vs asyncpg vs psycopg3
asyncpg: 5.5k starts, last commit recently, ~150 issues, some incompatibility, few open PRs, extensive README. Includes benchmark showing it's supposedly 3x faster than aiopg and psycopg2, psycopg3 is not mentioned in the benchmark.
psycopg2
-
Django project - Part 2 Postgres
# Palindrome project Project used to explain my view on a django project architecture, explained on my [series of posts](https://dev.to/pcampos119104/django-project-setup-part-1-2e7a) ## Tools, libs, etc. Some time related files. Versions on Poetry. - [Python](https://www.python.org/) Programming languange - [django-environ](https://django-environ.readthedocs.io) Manage .envs in Django - [Poetry](https://python-poetry.org/) Python packaging and dependency management - poetry.lock - pyproject.toml - [Django](https://www.djangoproject.com/) Web framework written in Python - [Docker](https://www.docker.com/) Manage containers for dev environment - compose.yaml - compose/dev/Dockerfile - compose/dev/start - .env - [Just](https://just.systems/) encapsulate commands for easier use - justfile - [psycopg](https://www.psycopg.org/) Python adapter for Postgres # <-- new line ## Dev environment setup 1. Install Just, Docker and Poetry(opcional). 2. Copie .env.example to .env, no need for edtion. 3. `$ just build` ## Run the server for development 1. Certified that docker is up and running 2. `$ just runserver` You can access on http://0.0.0.0:8000/
-
Can I learn Python while practicing writing queries for SQL simultaneously? I've recently completed learning SQL and trying to get better at it.
You can practice both by using https://www.psycopg.org from your Python code to communicate with your database. When I wanted to practice some SQL, that's what I did (we use psycopg at work, so that's what I practiced with, making a dream journal thingy for myself that was better than just noting stuff in a notepad because I could then look up e.g. what other stuff was correlated with Y, how many times I dreamed of X, etc. etc.)
-
Installing psycopg2==2.8.6 throws an error
But seems like it should work with Django 3, which you have specified https://github.com/psycopg/psycopg2/issues/1293
-
Uploading CSVs to a SQL table using Python
If you're using Postgres for your SQL, look at the "copy' method of the psycopg module (see https://www.psycopg.org/articles/2020/11/15/psycopg3-copy/) . It's much faster than INSERTs in my experience (YMMV).
-
Underappreciated Challenges with Python Packaging
Back when I used Psycopg2, there was no -binary package, so you'd get libpq set up similarly to pg-native. Docs say:
> The binary package is a practical choice for development and testing but in production it is advised to use the package built from sources.
Relevant GitHub discussion: https://github.com/psycopg/psycopg2/issues/674
I dunno, this seems worse to me.
-
Integrate PostgreSQL Database In Python - A Hands-On Guide
Just go to the more easily readable docs here. I’m sorry, but the linked article is terrible.
-
Has anyone made the switch from developing in Windows to macOS? Any general or specific advice about the switch?
psycopg2-binary. See https://github.com/psycopg/psycopg2/issues/1286.
-
Dockerize a Django, React, and Postgres application with docker and docker-compose | by Anjal Bam
psycopg2-binary, PostgreSQL Database adapter for python.
-
My Cookiecutter Django Setup
... # psycopg2==2.9.3 # https://github.com/psycopg/psycopg2 ...
-
Why "import blescan as blescan"?
I sometimes do this in testing. For example, consider the library used to communicate with a Postgres database, psycopg.
What are some alternatives?
psycopg - New generation PostgreSQL database adapter for the Python programming language
SQLAlchemy - The Database Toolkit for Python
aiopg - aiopg is a library for accessing a PostgreSQL database from the asyncio
queries - PostgreSQL database access simplified
pgbouncer - lightweight connection pooler for PostgreSQL
txpostgres - Twisted wrapper for asynchronous PostgreSQL connections