finds.dev← search

// the find

python-gino/gino

★ 2,804 · Python · NOASSERTION · updated Feb 2022

GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.

GINO is an async ORM for Python that sits on top of SQLAlchemy Core (not ORM) and uses asyncpg for Postgres or aiomysql for MySQL. It gives you SQLAlchemy's query building and Alembic migration support while keeping everything non-blocking. Aimed at developers building async Python services who want a familiar SQLAlchemy-flavored API without threading hacks.

The SQLAlchemy Core foundation is a real win — you get proper query composition and Alembic migrations without re-inventing the wheel. The contextual connection management via asynccontextvars is well-designed, handling transaction propagation without requiring you to pass connection objects everywhere. Framework extension support is broad and genuine — aiohttp, Sanic, FastAPI, Starlette all have first-class integration packages. JSONB support on Postgres is a nice touch for models that need schemaless columns alongside structured ones.

Dead project — last commit was February 2022, and SQLAlchemy 2.0 shipped full async support natively, which makes GINO largely redundant for new work. The library predates SA's own async story and now competes badly against `sqlalchemy.ext.asyncio`, which has the full SA team behind it. MySQL support via aiomysql feels bolted on and was never at parity with the Postgres dialect. If you're starting a new async Postgres service today, reach for SQLAlchemy 2.0 async + asyncpg directly — same ergonomics, actively maintained, no extra layer to debug.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →