awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
go-gorp avatar

go-gorp/gorp

0
View on GitHub↗

Gorp

Gorp is a lightweight object-relational mapper for Go that binds structs to relational database tables. It functions as a relational data mapper and SQL dialect abstraction layer, automating the translation between application data and relational rows.

The project provides a translation layer that generates vendor-specific SQL for PostgreSQL, MySQL, SQLite, Oracle, and SQL Server. It distinguishes itself by implementing optimistic locking via version columns to prevent concurrent update conflicts and providing a database schema generator to create tables and indexes from object definitions.

The capability surface covers standard CRUD operations, atomic transaction management, and query result binding to slices or structs. It includes support for lifecycle hooks to automate record processing and observability tools for logging and tracing executed SQL statements.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • CRUD Operations - Provides a consistent interface for basic create, read, update, and delete operations.
  • SQL ORMs - Implements a lightweight object-relational mapper that binds Go structs to relational database tables.
  • Database Access Layers - Provides a consistent API for CRUD operations and transactions regardless of the underlying database driver.
  • Database Schema Generation - Automatically creates or modifies database tables and indexes based on object definitions.
  • Database Transaction Management - Provides programmatic control of atomic transaction boundaries to ensure data consistency.
  • Object-Relational Mappers - Maps database rows to hierarchical Go objects using tags and custom type conversions.
  • Struct-to-Table Mappings - Provides mechanisms to map Go structs to relational database tables for automated data translation.
  • Query Result Binding - Binds the results of select queries to pointers to populate Go variables with data from returned rows.
  • Query Result Bindings - Binds raw SQL query results to Go slices or structs using custom scanning functions.
  • SQL Database Engine Support - Provides a standardized interface that works across PostgreSQL, MySQL, SQLite, Oracle, and SQL Server.
  • SQL Dialect Adapters - Translates operations across multiple database engines including SQLite, PostgreSQL, MySQL, SQL Server, and Oracle.
  • Dialect-Specific SQL Generation - Provides translation of generic operations into SQL strings tailored to specific database versions and dialects.
  • SQL Schema Generators - Automatically derives database table and type definitions from Go struct definitions.
  • Struct-to-Table Mappings - Links Go object structures to relational database tables using tags to define column names and primary keys.
  • Reflection-Based Population - Uses runtime reflection to automatically populate struct fields with data returned from database query results.
  • Database Column Bindings - Binds database result columns to strongly-typed Go primitives using custom scanning functions.
  • Query Result Bindings - Binds the results of raw SQL queries to Go slices, structs, or primitive types.
  • Database Type Mappings - Translates application-level Go types into Oracle-specific database column types.
  • Row-to-Struct Mappers - Automatically transforms database result sets into hierarchical Go objects by supporting nested structs.
  • Data Type Mappings - Translates Go types and structs into Snowflake SQL data types for table creation.
  • Complex Data Type Mappings - Translates complex language structures like slices or custom types into database-compatible formats during persistence.
  • Database Index Management - Enables the creation and registration of indexes to optimize query performance.
  • Database Lifecycle Hooks - Triggers custom logic before or after database operations to automate tasks like timestamping.
  • Schema Constraints - Specifies primary keys and multi-column uniqueness constraints for relational tables.
  • MySQL Integrations - Provides specific support for translating Go types into corresponding MySQL column types.
  • Optimistic Locking - Prevents concurrent update conflicts by tracking and verifying version columns on model instances.
  • Database-Specific Type Mappings - Maps Go primitive types and structs to Microsoft SQL Server data types.
  • Persistence Lifecycle Hooks - Implements lifecycle hooks to automate tasks like timestamping or validation before and after data persistence.
  • Databases & Data - Object-relational mapper for mapping structs to database tables.
  • Object Relational Mappers - ORM-like library for Go.
  • Object Relational Mapping - ORM-like library for Go.
  • ORM and Data Mapping - Relational persistence ORM-ish library.
3,751 stars·378 forks·Go·MIT·23 views

Star history

Star history chart for go-gorp/gorpStar history chart for go-gorp/gorp

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Projects sharing features with Gorp

These projects share indexed features with Gorp. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • go-xorm/xormgo-xorm avatar

    go-xorm/xorm

    6,628View on GitHub↗

    xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries and maps database rows back into native objects, providing a multi-dialect database driver that supports MySQL, PostgreSQL, SQLite, Oracle, SQL Server, and TiDB. The project features a read-write splitting manager that routes modification requests to a primary database and read requests to replicas. It includes a database schema synchronizer to automatically align table structures and indexes with application data models, as well as a fluent SQL query builder for constructing co

    Gogolangmssqlmysql
    View on GitHub↗6,628
  • dotnetcore/freesqldotnetcore avatar

    dotnetcore/FreeSql

    4,388View on GitHub↗

    FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for multiple relational database providers. It functions as a fluent SQL query builder and database schema synchronizer, allowing developers to align database table and index structures with entity class definitions. The framework is specifically optimized for .NET Native AOT to ensure reduced memory footprints and faster startup times. It includes a database traffic manager to distribute load through read-write splitting, dynamic table sharding, and tenant-based data isolation. Bro

    C#accessclickhousecodefirst
    View on GitHub↗4,388
  • go-pg/pggo-pg avatar

    go-pg/pg

    5,785View on GitHub↗

    pg is a PostgreSQL object-relational mapper (ORM) for Go that maps Go structs to database tables and provides a fluent query builder for constructing SQL statements programmatically. At its core, it automatically generates CREATE TABLE statements from Go struct definitions using struct tags and naming conventions, and builds queries through method chaining with placeholder-based parameter binding to prevent SQL injection. The library distinguishes itself through relation-aware join generation that automatically constructs JOIN clauses for has-one, has-many, many-to-many, and polymorphic assoc

    Go
    View on GitHub↗5,785
  • go-gorm/gormgo-gorm avatar

    go-gorm/gorm

    39,798View on GitHub↗

    GORM is a developer-focused object-relational mapping library for Go that provides a comprehensive data persistence framework. It serves as a database access layer, allowing developers to map application structures to database tables and perform CRUD operations using a fluent, type-safe query builder instead of writing raw SQL. The library distinguishes itself through its association-aware persistence, which automatically tracks and synchronizes complex entity relationships during database operations. It utilizes a driver-agnostic interface to maintain consistent behavior across various stora

    Gogogolanggorm
    View on GitHub↗39,798
Compare all 30 related projects→

Frequently asked questions

What does go-gorp/gorp do?

Gorp is a lightweight object-relational mapper for Go that binds structs to relational database tables. It functions as a relational data mapper and SQL dialect abstraction layer, automating the translation between application data and relational rows.

What are the main features of go-gorp/gorp?

The main features of go-gorp/gorp are: CRUD Operations, SQL ORMs, Database Access Layers, Database Schema Generation, Database Transaction Management, Object-Relational Mappers, Struct-to-Table Mappings, Query Result Binding.

Which projects share features with go-gorp/gorp?

Projects with overlapping indexed features include: go-xorm/xorm — xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries… dotnetcore/freesql — FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for… go-pg/pg — pg is a PostgreSQL object-relational mapper (ORM) for Go that maps Go structs to database tables and provides a fluent… go-gorm/gorm — GORM is a developer-focused object-relational mapping library for Go that provides a comprehensive data persistence… sqlalchemy/sqlalchemy — SQLAlchemy is a comprehensive Python SQL toolkit and object-relational mapper that provides a full suite of tools for… uptrace/bun — Bun is a type-safe object relational mapper for Go that prioritizes SQL-first query construction and result mapping.…