Peewee is a small, expressive ORM that supports PostgreSQL, MySQL, SQLite, and includes asyncio support.
Peewee addresses the need for lightweight database abstraction without sacrificing query expressiveness. It works by exposing SQL's full power through a flexible query builder while keeping the API intuitive. The tool is distributed as a single module with no required dependencies, making it straightforward to integrate into projects. It supports multiple database backends through optional driver installations and provides asyncio support built on standard async drivers like aiosqlite, asyncpg, and aiomysql.
Peewee suits developers who want an ORM that stays out of the way without imposing heavy frameworks. It works well for projects of any size, from small scripts to production workloads, and integrates cleanly with Flask, FastAPI, and Pydantic. The tool includes schema migrations with diff-based generation through the pwmigrate command and offers numerous extensions for specialized use cases. Choose this if you prefer explicit SQL control and minimal magic compared to heavier ORMs.
The project maintains steady, deliberate development with regular updates addressing both core functionality and ecosystem integration. Documentation is comprehensive and well-organized, covering everything from quickstart guides to extensive SQL query examples. The codebase has demonstrated stability across production deployments spanning years, with the tool having run real workloads since its inception.