Crecto is an ORM written in Crystal which uses a Repository architectural pattern, where storage related concerns (the Repo) are separated from business concerns (the model).
Crecto was inspired by Ecto for the Elixir language. And while Elixir is a functional language, Crystal and Crecto are not. Models have mutable properties and are instances of Classes which inherit from
Crecto features multiple database connectors via
Crecto::Repo, query building with
Crecto::Query, transactions using
Crecto::Multi, validations, database constraints, and more.