go-gorm/gorm

The fantastic ORM library for Golang, aims to be developer friendly

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 56 minutes ago
Added to GitGenius on February 18th, 2025
Created on October 25th, 2013
Open Issues & Pull Requests: 518 (+0)
Number of forks: 4,176
Total Stargazers: 39,924 (+0)
Total Subscribers: 486 (+0)

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 234.5 days
90th percentile: 976.7 days
Tracked items: 781

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 87% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 6% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 360
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 667 days
Stale 30+ days: 351
Stale 90+ days: 332

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 5

Top labels

  • status:stale (983)
  • type:missing reproduction steps (743)
  • type:question (588)
  • type:with reproduction steps (323)
  • type:feature_request (200)
  • status:gorm_v1 (185)
  • contribution welcome (18)
  • type:invalid question (14)

Detailed Description

GORM is a comprehensive Object-Relational Mapping library for Go that prioritizes developer experience and ease of use. The library provides a full-featured ORM solution designed to streamline database interactions in Go applications, offering extensive functionality for managing relational data through Go structs and methods rather than raw SQL.

The core capabilities of GORM encompass a wide range of database operations and patterns. The library supports multiple association types including Has One, Has Many, Belongs To, Many To Many relationships, along with polymorphism and single-table inheritance patterns. It includes a comprehensive hooks system with Before and After triggers for Create, Save, Update, Delete, and Find operations, allowing developers to inject custom logic at various points in the data lifecycle. Transaction support extends beyond basic transactions to include nested transactions, save points, and the ability to rollback to specific saved points, providing fine-grained control over data consistency.

GORM's query capabilities are extensive, featuring eager loading through Preload and Joins methods, batch operations including batch insert and FindInBatches, and the ability to find results mapped to custom structures. The library includes a SQL builder for constructing complex queries programmatically, with support for upsert operations, row locking, optimizer hints, index hints, comment hints, named arguments, and SQL expressions within search, update, and create operations. Additional features include support for composite primary keys, automatic migrations, built-in logging, and context support for managing request lifecycles.

The architecture emphasizes extensibility through a flexible plugin API. The Database Resolver plugin enables multiple database connections and read/write splitting patterns, while Prometheus integration provides monitoring capabilities. The library also supports prepared statement mode and dry-run mode for query inspection and debugging.

According to GitGenius activity tracking, the repository shows significant maintenance and community engagement.

GORM is released under the MIT License and maintains comprehensive test coverage across all features. The project is supported by official documentation at gorm.io and includes a code generation tool called Gen for type-safe query building. The library's emphasis on being developer-friendly is reflected in its intuitive API design and extensive documentation resources available to users.