Skip to content

Embar

Embar logo

A Python ORM with types


Embar is a new ORM for Python with the following goals: - Type safety: your type checker should know what arguments are valid, and what is being returned from any call. - Type hints: your LSP should be able to guide you towards the query you want to write. - SQL-esque: you should be able to write queries simply by knowing SQL and your data model. - You should be able to actually just write SQL when you need to.

These are mostly inspired by Drizzle. The Python ecosystem deserves something with similar DX.

Embar supports three database clients:

The async psycopg3 client is recommended. The others are provided mostly for testing and experimenting locally.

Embar uses Template strings and so only supports Python 3.14.

Embar is pre-alpha and ready for experimentation but not production use.

Documentation: embar.rdrn.me

Roadmap

  • Improve the story around updates. Requires codegen.
  • Create a drizzle-style db.query.users.findMany({ where: ... }) alternative syntax. Requires codegen.
  • Create a migration diffing engine.