GORM VS sqlc

Compare GORM vs sqlc and see what are their differences.

GORM

The fantastic ORM library for Golang, aims to be developer friendly (by go-gorm)

sqlc

Generate type safe Go from SQL (by kyleconroy)
Our great sponsors
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • SaaSHub - Software Alternatives and Reviews
GORM sqlc
20 23
25,575 4,085
2.3% -
9.2 9.2
6 days ago 6 days ago
Go Go
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

GORM

Posts with mentions or reviews of GORM. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-30.
  • Migrating from PHP to Go
    reddit.com/r/golang | 2021-09-30
    Do you like an ORM like eloquent for Laravel? Then I can recommend GORM https://gorm.io/
    reddit.com/r/golang | 2021-09-30
    Good ORM library: https://gorm.io/
  • 5chan - The 4chan clone
    dev.to | 2021-09-18
    GORM
  • How We Went All In on sqlc/pgx for Postgres + Go
    reddit.com/r/golang | 2021-09-09
    Well, if you look at Gorm's prepare_stmt.go you see that it is a thin wrapper around a database/sql.Stmt. And if you look at database/sql.Stmt you see that it's a sort of handle to an abstract entity that it creates in the database.
  • Go, Kafka and gRPC clean architecture CQRS microservices with Jaeger tracing 👋🧑‍💻
    dev.to | 2021-08-29
    Writer service consumes kafka topics, process messages writing to postgres and publishes successfully processed messages to kafka. For working with postgres in Go in my opinion the best choose is pgx, but if you need query builder very good library is squirrel, personally don't like orm's, but usually as have seen, teams often uses gorm, it's up to you. ProcessMessages method listening kafka topics and call specific method depends on topic:
  • What Knowledge Golang Back End Developer Should Have?
    reddit.com/r/golang | 2021-08-24
    gorm's performance I believe is fairly impressive at this point. While it was bad at first, they put a lot of effort in the v2 release to make it great. Check out: https://github.com/go-gorm/gorm/issues/3055
  • Read table from database without knowng its field in golang
    reddit.com/r/golang | 2021-08-08
    Sure. You can do this, but I would honestly recommend to only do this in test code, if at all. Otherwise, you should aim to keep types and by that the according API to interact with your DB schema static and consistent. An easy way to do this would be to use an object relational mapper (ORM) library like gorm.
  • What is the best solution to unique data in golang
    reddit.com/r/golang | 2021-08-05
    Once in sqlite you can use something like https://gorm.io/ (or use a golang sqlite package like: github.com/mattn/go-sqlite3) to work with the data.
  • Database for Go projects?
    reddit.com/r/golang | 2021-06-20
    If you and your team currently don't have any specific requirements, I'd advice to choose an abstraction library that have supports for most common dbs (eg. gorm or bun) and start with whatever db you are more used to.
  • Which is the best go web framework for creating a rest api 's backend ?
    reddit.com/r/golang | 2021-06-19
    DB abstractions: - gorm - go-pg - bun - sqlx

sqlc

Posts with mentions or reviews of sqlc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-08.
  • Compile SQL to type-safe Go
  • We Went All in on Sqlc/Pgx for Postgres and Go
    news.ycombinator.com | 2021-09-08
    Can you provide some resources about the lack of support for joins in sqlc? Because I wasn't able to find in official documentation and actually there's a discussion on github containing queries with join statements: https://github.com/kyleconroy/sqlc/issues/213
    news.ycombinator.com | 2021-09-08
    I stumbled across this library a few months ago and also really liked the approach. Unfortunately I had to drop it temporarily due to this issue (https://github.com/kyleconroy/sqlc/pull/983)... which I now see is solved. Taking another look. :)
    news.ycombinator.com | 2021-09-08
    I was really really excited when I saw the title because I've been having a lot of difficulties with other Go SQL libraries, but the caveats section gives me pause.

    Needing to use arrays for the IN use case (see https://github.com/kyleconroy/sqlc/issues/216) and the bulk insert case feel like large divergences from what "idiomatic SQL" looks like. It means that you have to adjust how you write your queries. And that can be intimidating for new developers.

    The conditional insert case also just doesn't look particularly elegant and the SQL query is pretty large.

    sqlc also just doesn't look like it could help with very dynamic queries I need to generate - I work on a team that owns a little domain-specific search engine. The conditional approach could in theory with here, but it's not good for the query planner: https://use-the-index-luke.com/sql/where-clause/obfuscation/...

    news.ycombinator.com | 2021-09-08
    Thanks a lot for this great project. I looked in the issues for Sqlite support and saw the merge of PR to "Add three new experimental engines, including SQLite" [0] and there's major architecture changes involved. That merge was 1.5 yr ago though, and I am curious what the plans are to take that further.

    [0] https://github.com/kyleconroy/sqlc/pull/331

  • Write an SQL query builder in 150 lines of Python
    news.ycombinator.com | 2021-08-27
    Doing it the other way around make more sense, i.e. write SQL to generate code. See https://github.com/kyleconroy/sqlc, why aren't more people following this approach?
  • Show HN: Typed Postgres CRUD Queries
    news.ycombinator.com | 2021-08-27
    If you are into Golang, also well worth checking out sqlc. It parses your migrations to generate typed structs and query funcs

    https://github.com/kyleconroy/sqlc

  • Ask HN: Companies of one, what is your tech stack (2021)?
    news.ycombinator.com | 2021-08-25
  • JOOQ library equivalent for Go?
    reddit.com/r/golang | 2021-07-28
    Dev site: https://sqlc.dev/
    reddit.com/r/golang | 2021-07-28

What are some alternatives?

When comparing GORM and sqlc you can also consider the following projects:

ent - An entity framework for Go

Xorm

go-pg - Golang ORM with focus on PostgreSQL features and performance

SQLBoiler - Generate a Go ORM tailored to your database schema.

beego orm

gorp - Go Relational Persistence - an ORM-ish library for Go

xorm - xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。本库是基于原版xorm的定制增强版本,为xorm提供类似ibatis的配置文件及动态SQL支持,支持AcitveRecord操作

upper.io/db - Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.

sqlx - general purpose extensions to golang's database/sql

pop/soda - A Tasty Treat For All Your Database Needs

REL - :gem: Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API

reform - A better ORM for Go, based on non-empty interfaces and code generation.