What is GORM?
It is a fantastic ORM library for Golang, aims to be developer friendly. It is an ORM library for dealing with relational databases. This library is developed on top of database/sql package.
GORM is a tool in the Object Relational Mapper (ORM) category of a tech stack.
GORM is an open source tool with 580 GitHub stars and 172 GitHub forks. Here’s a link to GORM's open source repository on GitHub
Who uses GORM?
Companies
13 companies reportedly use GORM in their tech stacks, including SWORD Health, Buzzvil, and Finema.
Developers
93 developers on StackShare have stated that they use GORM.
GORM Integrations
GORM's Features
- Full-Featured ORM
- Associations (has one, has many, belongs to, many to many, polymorphism, single-table inheritance)
- Hooks (before/after create/save/update/delete/find)
- Eager loading with Preload, Joins
- Transactions, Nested Transactions, Save Point, RollbackTo to Saved Point
- Context, Prepared Statment Mode, DryRun Mode
- Batch Insert, FindInBatches, Find/Create with Map, CRUD with SQL Expr and Context Valuer
- SQL Builder, Upsert, Locking, Optimizer/Index/Comment Hints, Named Argument, SubQuery
- Composite Primary Key, Indexes, Constraints
- Auto Migrations
- Logger
- Extendable, flexible plugin API
GORM Alternatives & Comparisons
What are some alternatives to GORM?
Beego
It is a RESTful HTTP framework for the rapid development of Go applications including APIs, web apps and backend services with integrated Go specific features such as interfaces and struct embedding.
Hibernate
Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper.
SQLAlchemy
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
Entity Framework
It is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.
Sequelize
Sequelize is a promise-based ORM for Node.js and io.js. It supports the dialects PostgreSQL, MySQL,
MariaDB, SQLite and MSSQL and features solid transaction support, relations, read replication and
more.