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

asyncpg

High performance
PostgreSQL driver

SQLAlchemy

Robust & mature SQL
rendering engine

No Surprise

Lightweight & explicit
architecture

Being Pythonic

Practical API for
development performance

 HIGHLIGHTS

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

Read More

ARCHITECTURE 

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
asyncpg

SHOWCASE

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.

ROADMAP

1.0 Release

Redo packaging and automation


Embed aiocontextvars and move extensions out


python-gino.org


Release candidates


Better documentation


Blog post


Cached prepared statement


MySQL support


Better typing support


SQLAlchemy 1.4 SQLAlchemy 2 support