Amber is independent of your choice of model architectures. We (Core members) have built two ORM models: Granite and Crecto. We also think Jennifer built by Roman Kalnytskyi is a good option.
When you generate a new amber project, you can specify which model you prefer.
amber new blog -m crecto --deps
We currently support
crecto and default to
Granite provides a light weight ORM that is focused on taking the results of your query and mapping them to your model. It does not try to shield you from the SQL that lies underneath the mapping. It provides a couple conveniences like
destroy for simple INSERT, UPDATE and DELETE statements. It provides
all to query the database. It also has basic one-to-many relationships with
Crecto is based on Phoenix's ecto and follows the repository pattern. Your data objects are data structures to hold the data and then you use a Repo to
Repo.delete your object in the db. You can use
Repo.all to query the db, or
Repo.get to grab a single row.
Jennifer provides an more full featured ORM with a full featured DSL for queries and follows the ActiveRecord pattern found in Rails. If you are looking for a full featured ORM, Jennifer may be your choice of ORM.