Iceaxe

A modern, fast ORM for Python. We have the following goals:

  • ๐ŸŽ๏ธ Performance: We want to exceed or match the fastest ORMs in Python. We want our ORM to be as close as possible to raw-asyncpg speeds. See the "Benchmarks" section for more.
  • ๐Ÿ“ Typehinting: Everything should be typehinted with expected types. Declare your data as you expect in Python and it should bidirectionally sync to the database.
  • ๐Ÿ˜ Postgres only: Leverage native Postgres features and simplify the implementation.
  • โšก Common things are easy, rare things are possible: 99% of the SQL queries we write are vanilla SELECT/INSERT/UPDATEs. These should be natively supported by your ORM. If you're writing really complex queries, these are better done by hand so you can see exactly what SQL will be run.