HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
sqlc-dev
sqlc
Go2019–2025
sqlc-dev / sqlc

sqlc

Generate type-safe code from SQL

35Distinct people
44Mentions
1Explicit recommenders
18.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Generate type-safe code from SQL

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

This looks really cool to me, because I love to write SQL. Except for that `UPDATE` statement. That... is a problem. Looks like there is an open discussion about this on the…

draebek used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year44 dated mentions

Observed mentions: 2019-09-20 21:33:01 UTC to 2025-04-17 02:53:09 UTC.

0510152019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC303
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC11110
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC13013
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC505
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC707
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC211

What Hacker News says

44 sources
There are some good tips here. As for sqlc, I really wanted to like it, but it had some major limitations and minor annoyances last time I tried it a few months ago. You might want to go through its list of issues[1] before adopting it. Things like no support for dynamic queries[2], one-to-many relationships[3], embedded CTEs[4], composite types[5], etc. It might work fine if you only have simple needs, but if you ever want to do something slightly sophisticated, you'll have to fallback to the manual approach. It's partly understandable, though. It cannot realistically support every feature of every DBMS, and it's explicitly not an ORM. But I still decided to stick to the manual approach for everything, instead of wondering whether something is or isn't supported by sqlc. One tip/gotcha I recently ran into: if you run Go within containers
Read the rest
In Some Go web dev notes
I missed this too. However, I've found you can work around it pretty easily with clauses like CASE WHEN @field != "" THEN column = @field ELSE true END. Example from the sqlc creator (https://github.com/sqlc-dev/sqlc/discussions/364#discussionc...): -- name: FilterFoo :many SELECT * FROM foo WHERE fk = @fk AND (CASE WHEN @is_bar::bool THEN bar = @bar ELSE TRUE END) AND (CASE WHEN @lk_bar::bool THEN bar LIKE @bar ELSE TRUE END) AND (CASE WHEN @is_baz::bool THEN baz = @baz ELSE TRUE END) AND (CASE WHEN @lk_baz::bool THEN baz LIKE @baz ELSE TRUE END) ORDER BY CASE WHEN @bar_asc::bool THEN bar END asc, CASE WHEN @bar_desc::bool THEN bar END desc, CASE WHEN @baz_asc::bool THEN baz END asc, CASE WHEN @baz_desc::bool THEN baz END desc;
In Sqlc: Compile SQL to type-safe code
I can't find an equivalent for Go. https://github.com/sqlc-dev/sqlc and https://github.com/sqlc-dev/sqlc look nice, but they are doing codegen, definitely not as sleek as Rust sqlx. I guess it's a good example of how powerful Rust is. The "magic" that sqlx does at compile time gets really difficult if not impossible to do without macros. Of course you could create a separate parser/builder, and codegen works as well, but definitely not as convenient and flexible.
In Why Golang instead of Rust to develop the Krater desktop app
If you want to try out something cool, check out https://github.com/sqlc-dev/sqlc It's written in Go and it converts your sql migrations and queries into typesafe code that you use access your database. It currently has a plugin for Python that's in Beta, but what essentially does something similar to what this post is saying. https://github.com/sqlc-dev/sqlc-gen-python You write your migrations, and queries and a config file and it does the rest.
In Python: Just Write SQL
It's also the domain used for releases and other artifacts (after a redirect from github.com). There's going to be a lot of broken builds today: $ curl -i -L https://github.com/kyleconroy/sqlc/releases/download/v1.17.0/sqlc_1.17.0_linux_amd… HTTP/2 302 server: GitHub.com date: Fri, 24 Mar 2023 20:51:56 GMT content-type: text/html; charset=utf-8 location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/19316…
Read the rest
chment%3B%20filename%3Dsqlc_1.17.0_linux_amd64.tar.gz&response-content-type=application%2Foctet-stream curl: (60) SSL certificate problem: certificate has expired More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. > What are the odds this happens the same day they rotate their SSH keys? Definitely a bad for them. When it rains, it pours.
In GitHub's User Content certificate has expired

Showing the 15 most recent of 44 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.