Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Crystal
  3. jennifer.cr

jennifer.cr

MITCrystalv0.13.0

An ActiveRecord pattern ORM for Crystal with a flexible query DSL, validations, relationships, and migrations.

GitHubGitHub
424 stars57 forks0 contributors

What is jennifer.cr?

Jennifer is an Object-Relational Mapper (ORM) for the Crystal programming language that implements the ActiveRecord pattern. It provides a comprehensive suite of tools for database interaction, including a flexible query DSL, model validations, relationship definitions, and a migration system. It solves the problem of managing database operations in Crystal applications by offering a type-safe, productive abstraction over SQL.

Target Audience

Crystal developers building database-driven applications who prefer an ActiveRecord-style ORM with strong querying capabilities and built-in features like migrations and validations.

Value Proposition

Developers choose Jennifer for its full-featured, ActiveRecord-like implementation in Crystal, its powerful and flexible query DSL that supports complex SQL operations, and its integrated tooling for migrations, validations, and internationalization, all while leveraging Crystal's performance and type safety.

Overview

Crystal ORM using ActiveRecord pattern with flexible query DSL

Use Cases

Best For

  • Building web applications in Crystal that require complex database queries
  • Projects needing an ActiveRecord-style ORM with migrations and model validations
  • Applications using PostgreSQL, MySQL, or SQLite databases with Crystal
  • Teams familiar with Rails' ActiveRecord looking for a similar pattern in Crystal
  • Developing type-safe database layers with support for relationships and callbacks
  • Implementing multi-database support or database-specific features in a Crystal app

Not Ideal For

  • Projects using MySQL 8.0.36 or higher, as current versions lack support
  • Teams requiring a stable, production-ready ORM without frequent breaking changes
  • Applications with simple data access needs where raw SQL or lightweight libraries suffice
  • Environments prioritizing minimal abstraction over ORM features like migrations and validations

Pros & Cons

Pros

Flexible Query DSL

Supports complex SQL operations like joins, CTEs, and JSON operators through a domain-specific language, enabling expressive and type-safe database queries as detailed in the README.

Comprehensive Model Toolkit

Includes ActiveRecord-style relationships (e.g., polymorphic associations), validations, callbacks, and scopes, providing a full-featured model layer out of the box.

Integrated Migration System

Offers a built-in mechanism using Sam CLI for managing database schema changes, simplifying version control and deployment workflows.

Internationalization Support

Leverages i18n.cr for configurable error messages and model translations, aiding in multi-language applications without extra dependencies.

Cons

MySQL Version Limitations

Explicitly does not support MySQL 8.0.36 and above, restricting compatibility with newer MySQL releases and potentially forcing database downgrades.

Pre-Beta Instability

Under heavy development with frequent breaking changes per the versioning policy, making it risky for long-term projects without close monitoring of updates.

Driver Dependency Complexity

Requires external database drivers (e.g., crystal-mysql or crystal-pg) and specific configuration, adding setup overhead and potential version conflicts.

Frequently Asked Questions

Quick Stats

Stars424
Forks57
Contributors0
Open Issues15
Last commit1 year ago
CreatedSince 2017

Tags

#orm#database#crystal-lang#migrations#activerecord#crystal#postgresql#chainable-methods#crystal-language#mysql#sqlite#activerecord-pattern#query-dsl

Built With

C
Crystal

Included in

Crystal3.5k
Auto-fetched 10 hours ago

Related Projects

crectocrecto

Database wrapper and ORM for Crystal, inspired by Ecto

Stars352
Forks44
Last commit3 months ago
granitegranite

ORM Model with Adapters for mysql, pg, sqlite in the Crystal Language.

Stars307
Forks89
Last commit16 days ago
clearclear

Advanced ORM between postgreSQL and Crystal

Stars283
Forks32
Last commit9 months ago
avramavram

A Crystal database wrapper for reading, writing, and migrating Postgres databases.

Stars181
Forks67
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub