GINO is a non-typical
object-relational mapping
library in Python for asyncio.
GitHub Project


High performance
PostgreSQL driver


Robust & mature SQL
rendering engine

No Surprise

Lightweight & explicit

Being Pythonic

Practical API for
development performance


GINO is an engineering product,
built on top of popular tools,
tailored for asyncio.

Read More


Query Builder

For applications using asyncpg directly,
GINO adds the ingredient of building SQLs
conveniently with SQLAlchemy core.

Async SQLAlchemy

GINO provides SQLAlchemy-like Engine
with async APIs.

Object Loader

GINO could load data into POPOs
(Plain Old Python Objects) for
easier data access.

Read More
SQLAlchemy core
GINO Async Wrapper
GINO Loader
GINO Dialect


I built GINO because I found it difficult to access database in Python with asyncio in 2017, and I wanted all three of explicitness, development performance and runtime performance in a single library.

Following GNU’s naming style, GINO is recursively defined as GINO Is Not ORM, indicating that it’s almost an ORM but refuses to inherit the implicit behaviors found in typical ORMs.


1.0 Release

Redo packaging and automation

Embed aiocontextvars and move extensions out

Release candidates

Better documentation

Blog post

Cached prepared statement

MySQL support

Better typing support

SQLAlchemy 1.4 SQLAlchemy 2 support