// the find
python-gino/gino
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.