A full-featured, developer-friendly ORM library for Go with associations, hooks, transactions, and auto migrations.
GORM is a full-featured Object-Relational Mapping (ORM) library for the Go programming language. It simplifies database interactions by providing an intuitive API for CRUD operations, associations, transactions, and schema migrations while maintaining SQL flexibility.
Go developers building applications that require database persistence, particularly those who want to avoid writing raw SQL and prefer a structured, type-safe approach to data management.
Developers choose GORM for its comprehensive feature set, developer-friendly design, and extensibility through plugins, making it one of the most popular ORM solutions in the Go ecosystem.
The fantastic ORM library for Golang, aims to be developer friendly
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes full ORM capabilities such as associations (Has One, Has Many), hooks, and SQL builder, making it suitable for complex database operations as outlined in the Overview.
Offers a flexible plugin system for database resolvers, Prometheus integration, and more, allowing customization and scalability per the README.
Designed with an intuitive API and comprehensive documentation at gorm.io, aiming to simplify database interactions for various skill levels.
Supports nested transactions, save points, and rollback functionality, essential for ensuring data integrity in complex applications.
The ORM abstraction layer can introduce latency and resource usage compared to raw SQL, which may impact high-throughput or latency-sensitive applications.
Features like associations and plugins have a steep learning curve, and debugging generated SQL or edge cases can be challenging without deep knowledge.
As an active project, GORM has experienced breaking changes in past versions, requiring code updates that can disrupt development workflows.