A modern, testable, and extendable ORM for Go with a clean API and support for multiple database adapters.
REL is a modern ORM for Go designed as a database access layer for layered architectures. It provides a clean, elegant API for database interactions while emphasizing testability and extensibility, solving the problem of complex and hard-to-test database code in Go applications.
Go developers building applications with layered architectures who need a testable, maintainable, and flexible database layer, particularly those working on web backends or services requiring reliable data access.
Developers choose REL for its built-in testability with the `reltest` package, extendable query builder that supports both builder patterns and raw SQL, and a clean API that reduces boilerplate while maintaining control over database operations.
:gem: Modern ORM for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The `reltest` package allows unit testing of database operations without a live database, enhancing test speed and reliability in layered architectures.
Supports both builder patterns and raw SQL with syntactic sugar, giving developers flexibility to balance abstraction and control.
Efficiently loads related data to prevent N+1 query issues, improving performance for applications with complex data relationships.
Provides reliable transaction management with nesting support, crucial for data integrity in multi-layered Go applications.
Documentation is hosted separately at go-rel.github.io, which can lead to inconsistencies or slower updates compared to in-repo docs.
As a smaller project, REL has fewer third-party integrations and community support than established ORMs like GORM, potentially slowing development.
Designed for layered architectures, it may introduce unnecessary complexity for simple projects or teams preferring lightweight solutions.