finds.dev← search

// the find

piccolo-orm/piccolo

★ 1,949 · Python · MIT · updated Sep 2026

A fast, user friendly ORM and query builder which supports asyncio.

Piccolo is an async-first Python ORM and query builder for Postgres, SQLite, and CockroachDB, with autogenerated migrations and a companion admin GUI. It's aimed at ASGI developers (FastAPI, Starlette, Litestar, and similar) who want Django-style modeling without pulling in Django itself.

You can drop between query-builder calls and ActiveRecord-style object calls on the same table, so you don't have to commit to one API upfront. Everything is fully type-annotated with working tab completion in iPython/VSCode, which makes exploring a schema interactively genuinely useful instead of guessing at method names. Migrations are autogenerated by diffing table definitions (schema_differ.py, migration_manager.py) rather than hand-written, closer to Django's workflow but built for async. `piccolo asgi new` scaffolds working apps for eight different frameworks (FastAPI, Starlette, Litestar, BlackSheep, Sanic, Falcon, Quart, Lilya, Ravyn), so that integration surface is actually exercised, not just claimed in docs.

Only three database backends are supported (Postgres, SQLite, CockroachDB) — no MySQL/MariaDB or SQL Server, which rules it out immediately for teams not already on one of those. The ecosystem is split across three repos (piccolo, piccolo_admin, piccolo_api), and customizing the admin interface means touching a Vue.js frontend most Python shops won't have the context to maintain. At under 2,000 stars its user base is a sliver of SQLAlchemy's or Django ORM's, so expect thinner Stack Overflow coverage and fewer third-party extensions. The migrations code carries both `serialisation.py` and `serialisation_legacy.py` side by side, a sign the autogeneration logic has accumulated backward-compat baggage — worth reading the changelog before trusting an auto-generated migration against a schema you actually care about.

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 →