{"slug": "sqlx", "name": "sqlx", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 5, "commenters": 14, "warners": 2, "score": 4.357, "rising": -1.64, "first": "2025-12-16", "latest": "2026-07-31", "why": "I actually took a lot of inspiration from sqlx, which is really nice.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 8, "compare": 0, "warn": 2}, "spark": [0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I actually took a lot of inspiration from sqlx, which is really nice.", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/vinovest/sqlx", "official_url": "https://github.com/launchbadge/sqlx", "pricing": "", "aliases": ["sqlx", "SQLx"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 786093760, "item_id": 49130860, "url": "https://news.ycombinator.com/item?id=49130860", "by": "smithcoin", "date": "2026-07-31", "stance": "recommend", "quote": "You\u2019d have a better chance of getting your PR accepted into https://github.com/Vinovest/sqlx", "excerpt": "You\u2019d have a better chance of getting your PR accepted into https://github.com/Vinovest/sqlx", "context": "", "use_case": "", "switched_from": "", "story": "Golang proposal: container/: generic collection types"}, {"id": 778349569, "item_id": 48646848, "url": "https://news.ycombinator.com/item?id=48646848", "by": "ilbert", "date": "2026-06-23", "stance": "recommend", "quote": "I actually took a lot of inspiration from sqlx, which is really nice.", "excerpt": "I actually took a lot of inspiration from sqlx, which is really nice. The main differences are: - in JS/TS you don't have compile-time scripts that you can run like with Rust's macros, so you need to run a codegen command before running the type checks (disadvantage) - I had to create a TS parser that goes and finds the tagged template functions with the sql statements, while sqlx has them \"for free\" because sql stat", "context": "", "use_case": "type-safe SQL in Rust", "switched_from": "", "story": "Show HN: Bun-sqlgen \u2013 Type-safe raw SQL for Bun, no ORM"}, {"id": 761650850, "item_id": 47603178, "url": "https://news.ycombinator.com/item?id=47603178", "by": "echelon", "date": "2026-04-01", "stance": "recommend", "quote": "plus SQLx, you need to give it a try", "excerpt": "All PHP is going to be replaced with single binary Rust apps. Talented teams will build the atoms for most apps - blogs, CMSes, ticket systems, forums - and it'll be easy for end users to configure. Rust is easy to code gen and deploy now. No barrier to understanding lifetimes. It's the language everyone should be using Claude Code to emit. Everyone is now a Rust engineer with 10 years of experience. (I'm not joking,", "context": "", "use_case": "Database access in Rust", "switched_from": "", "story": "EmDash \u2013 a spiritual successor to WordPress that solves plugin security"}, {"id": 753318561, "item_id": 47082410, "url": "https://news.ycombinator.com/item?id=47082410", "by": "wofo", "date": "2026-02-19", "stance": "recommend", "quote": "ended up settling on `sqlx` + hand-written SQL", "excerpt": "It's been a while since I last had a detailed look at web applications in Rust (i.e., stuff with databases, auth, etc). You could use axum for the web server, which is very mature, but I'd say it's too low-level (IIRC you cannot even generate an OpenAPI spec of your endpoints, which IMO is table-stakes). Have you found something more batteries-included, with a similar level of maturity, and actively maintained by a c", "context": "", "use_case": "Handwritten SQL access", "switched_from": "", "story": "Farewell Rust"}, {"id": 740647873, "item_id": 46290492, "url": "https://news.ycombinator.com/item?id=46290492", "by": "tormeh", "date": "2025-12-16", "stance": "recommend", "quote": "sqlx the most popular sql library", "excerpt": "Axum is the most popular web library out there, and sqlx the most popular sql library. Together they look something like this: https://github.com/tokio-rs/axum/blob/main/examples%2Fsqlx-postgres%2Fsrc%2Fmain.rs", "context": "", "use_case": "", "switched_from": "", "story": "I'm a Tech Lead, and nobody listens to me. What should I do?"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 784895667, "item_id": 49055979, "url": "https://news.ycombinator.com/item?id=49055979", "by": "ranedk", "date": "2026-07-26", "stance": "warn", "quote": "Atlas, sqlx, sqlc and all other ORM like things in golang cannot do migrations the way Django does.", "excerpt": "I have been using Django since 0.95 and I haven't seen anything which is so flexible with amazing DSLs while also making it easy to understand the magic behind it. For the last 10 years, even in a Golang stack or Java stack, I still use Django for models and migration. I even have generators which generate Gorm (or other framework) DAO or Java hibernate classes using Django models. With LLMs, it becomes easier since ", "context": "", "use_case": "migrations", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 774346752, "item_id": 48396672, "url": "https://news.ycombinator.com/item?id=48396672", "by": "ninkendo", "date": "2026-06-04", "stance": "warn", "quote": "The issue is a legitimate bug in sqlx related to how they use the whoami crate", "excerpt": "> Otherwise you would have known that the defaults you're complaining about are clearly identified in the README files you didn't read. None of what you\u2019re saying about my scenario is true at all. You\u2019re hallucinating shit worse than LLM\u2019s. There was no README that outlined the behavior. There was no change log entry. The sqlx crate did not document a single thing related to this at all. You\u2019re missing critical infor", "context": "", "use_case": "", "switched_from": "", "story": "Corporate America Is Starting to Ration AI as Cost Skyrockets"}]}], "who": [{"by": "nasretdinov", "context": "Go developer", "url": "https://news.ycombinator.com/item?id=49128285", "date": "2026-07-31"}, {"by": "bitbasher", "context": "built a profitable SaaS in Rust", "url": "https://news.ycombinator.com/item?id=47498138", "date": "2026-03-23"}, {"by": "pigsinzen", "context": "Backend, platform, and infra engineer", "url": "https://news.ycombinator.com/item?id=47221370", "date": "2026-03-02"}], "tags": [], "use_cases": ["database access", "go database access", "migrations", "type-safe sql in rust", "database access in rust", "side projects"], "compared": [{"slug": "axum", "name": "Axum", "co": 6, "switched_from": 0, "switched_to": 0}, {"slug": "django", "name": "Django", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "leptos", "name": "Leptos", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49127031", "title": "Golang proposal: container/: generic collection types", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48335388", "title": "Corporate America Is Starting to Ration AI as Cost Skyrockets", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47077383", "title": "Farewell Rust", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48997828", "title": "Some more things about Django I've been enjoying", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48645390", "title": "Show HN: Bun-sqlgen \u2013 Type-safe raw SQL for Bun, no ORM", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47602832", "title": "EmDash \u2013 a spiritual successor to WordPress that solves plugin security", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1, "neutral": 1}, "2026-01": {"neutral": 2}, "2026-02": {"neutral": 1, "recommend": 1}, "2026-03": {"neutral": 2}, "2026-04": {"recommend": 1}, "2026-05": {"neutral": 1}, "2026-06": {"warn": 1, "recommend": 1}, "2026-07": {"warn": 1, "neutral": 1, "recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 786093760, "item_id": 49130860, "url": "https://news.ycombinator.com/item?id=49130860", "by": "smithcoin", "date": "2026-07-31", "stance": "recommend", "quote": "You\u2019d have a better chance of getting your PR accepted into https://github.com/Vinovest/sqlx", "excerpt": "You\u2019d have a better chance of getting your PR accepted into https://github.com/Vinovest/sqlx", "context": "", "use_case": "", "switched_from": "", "story": "Golang proposal: container/: generic collection types"}, {"id": 786052560, "item_id": 49128285, "url": "https://news.ycombinator.com/item?id=49128285", "by": "nasretdinov", "date": "2026-07-31", "stance": "neutral", "quote": "something like my pull request for sqlx https://github.com/jmoiron/sqlx/pull/990", "excerpt": "Well, better late than never. Stuff like sets or a typed heap is long overdue. Maybe they'll even add iterator API for database/sql results this decade too (something like my pull request for sqlx https://github.com/jmoiron/sqlx/pull/990 but maybe more polished)", "context": "Go developer", "use_case": "Go database access", "switched_from": "", "story": "Golang proposal: container/: generic collection types"}, {"id": 784895667, "item_id": 49055979, "url": "https://news.ycombinator.com/item?id=49055979", "by": "ranedk", "date": "2026-07-26", "stance": "warn", "quote": "Atlas, sqlx, sqlc and all other ORM like things in golang cannot do migrations the way Django does.", "excerpt": "I have been using Django since 0.95 and I haven't seen anything which is so flexible with amazing DSLs while also making it easy to understand the magic behind it. For the last 10 years, even in a Golang stack or Java stack, I still use Django for models and migration. I even have generators which generate Gorm (or other framework) DAO or Java hibernate classes using Django models. With LLMs, it becomes easier since ", "context": "", "use_case": "migrations", "switched_from": "", "story": "Some more things about Django I've been enjoying"}, {"id": 778349569, "item_id": 48646848, "url": "https://news.ycombinator.com/item?id=48646848", "by": "ilbert", "date": "2026-06-23", "stance": "recommend", "quote": "I actually took a lot of inspiration from sqlx, which is really nice.", "excerpt": "I actually took a lot of inspiration from sqlx, which is really nice. The main differences are: - in JS/TS you don't have compile-time scripts that you can run like with Rust's macros, so you need to run a codegen command before running the type checks (disadvantage) - I had to create a TS parser that goes and finds the tagged template functions with the sql statements, while sqlx has them \"for free\" because sql stat", "context": "", "use_case": "type-safe SQL in Rust", "switched_from": "", "story": "Show HN: Bun-sqlgen \u2013 Type-safe raw SQL for Bun, no ORM"}, {"id": 774346752, "item_id": 48396672, "url": "https://news.ycombinator.com/item?id=48396672", "by": "ninkendo", "date": "2026-06-04", "stance": "warn", "quote": "The issue is a legitimate bug in sqlx related to how they use the whoami crate", "excerpt": "> Otherwise you would have known that the defaults you're complaining about are clearly identified in the README files you didn't read. None of what you\u2019re saying about my scenario is true at all. You\u2019re hallucinating shit worse than LLM\u2019s. There was no README that outlined the behavior. There was no change log entry. The sqlx crate did not document a single thing related to this at all. You\u2019re missing critical infor", "context": "", "use_case": "", "switched_from": "", "story": "Corporate America Is Starting to Ration AI as Cost Skyrockets"}, {"id": 773383249, "item_id": 48336453, "url": "https://news.ycombinator.com/item?id=48336453", "by": "ninkendo", "date": "2026-05-30", "stance": "neutral", "quote": "Yesterday I updated our dependency on the sqlx crate", "excerpt": "Yesterday I updated our dependency on the sqlx crate and put up a PR, and it failed in the CI build in a way I couldn\u2019t reproduce locally. I asked codex to take a look, and it: - Grabbed the CI logs on its own to figure out what the CI error was - Looked at my local setup - Looked at the changes in sqlx from 0.8 to 0.9 And figured out that sqlx depends on an updated version of the \u201cwhoami\u201d crate but doesn\u2019t specify d", "context": "", "use_case": "", "switched_from": "", "story": "Corporate America Is Starting to Ration AI as Cost Skyrockets"}, {"id": 761650850, "item_id": 47603178, "url": "https://news.ycombinator.com/item?id=47603178", "by": "echelon", "date": "2026-04-01", "stance": "recommend", "quote": "plus SQLx, you need to give it a try", "excerpt": "All PHP is going to be replaced with single binary Rust apps. Talented teams will build the atoms for most apps - blogs, CMSes, ticket systems, forums - and it'll be easy for end users to configure. Rust is easy to code gen and deploy now. No barrier to understanding lifetimes. It's the language everyone should be using Claude Code to emit. Everyone is now a Rust engineer with 10 years of experience. (I'm not joking,", "context": "", "use_case": "Database access in Rust", "switched_from": "", "story": "EmDash \u2013 a spiritual successor to WordPress that solves plugin security"}, {"id": 759970209, "item_id": 47498138, "url": "https://news.ycombinator.com/item?id=47498138", "by": "bitbasher", "date": "2026-03-23", "stance": "neutral", "quote": "built entirely in Rust (actix-web, sqlx, askama)", "excerpt": "I used Rust for ~14 months and released one profitable SaaS product built entirely in Rust (actix-web, sqlx, askama). I won't be using Rust moving forward. I do like the language but it's complicated (hard to hold in your head). I feel useless without the LSP and I don't like how taxing the compiler and LSP are on my system. It feels really wasteful to burn CPU and spin up fans every time I save a file. I find it har", "context": "built a profitable SaaS in Rust", "use_case": "database access", "switched_from": "", "story": "An Incoherent Rust"}, {"id": 755541926, "item_id": 47221370, "url": "https://news.ycombinator.com/item?id=47221370", "by": "pigsinzen", "date": "2026-03-02", "stance": "neutral", "quote": "currently using it at a high-level (Axum, SQLx, Clap, Reqwest, Bevy) on side projects", "excerpt": "Location: Central Maine Remote: Yes (17+ years fully remote) Willing to relocate: No Technologies: Python, Go, JavaScript, Kubernetes, Linux, AWS, Terraform, Ansible, Postgres R\u00e9sum\u00e9/CV: https://linkedin.com/in/kurtismullins Website: https://www.kurtismullins.com Email: kurtis@growdigitalroots.com GitHub: https://github.com/kurtismullins Backend, platform, and infra engineer \u2014 17 years across startups, SaaS, enterpri", "context": "Backend, platform, and infra engineer", "use_case": "side projects", "switched_from": "", "story": "Ask HN: Who wants to be hired? (March 2026)"}, {"id": 753318561, "item_id": 47082410, "url": "https://news.ycombinator.com/item?id=47082410", "by": "wofo", "date": "2026-02-19", "stance": "recommend", "quote": "ended up settling on `sqlx` + hand-written SQL", "excerpt": "It's been a while since I last had a detailed look at web applications in Rust (i.e., stuff with databases, auth, etc). You could use axum for the web server, which is very mature, but I'd say it's too low-level (IIRC you cannot even generate an OpenAPI spec of your endpoints, which IMO is table-stakes). Have you found something more batteries-included, with a similar level of maturity, and actively maintained by a c", "context": "", "use_case": "Handwritten SQL access", "switched_from": "", "story": "Farewell Rust"}, {"id": 753267184, "item_id": 47079199, "url": "https://news.ycombinator.com/item?id=47079199", "by": "cogman10", "date": "2026-02-19", "stance": "neutral", "quote": "Nope, it really was part of the design", "excerpt": "Nope, it really was part of the design [1] [1] https://github.com/launchbadge/sqlx/issues/333#issuecomment-632610467", "context": "", "use_case": "", "switched_from": "", "story": "Farewell Rust"}, {"id": 745251858, "item_id": 46578241, "url": "https://news.ycombinator.com/item?id=46578241", "by": "mondobe", "date": "2026-01-11", "stance": "neutral", "quote": "I'll be deep in the `sqlx` documentation", "excerpt": "I've been working on a music-making website since late spring. This is my first real frontend project, and I'm writing it in pure Rust using Leptos (so far, haven't had to write a single line of JavaScript!) Most of my work so far has been on the actual music-making interface, but I'm beginning work on the backend now. I've only worked with Django before (for a school project at Georgia Tech), so I'll be deep in the ", "context": "", "use_case": "Rust database access", "switched_from": "", "story": "Ask HN: What Are You Working On? (January 2026)"}, {"id": 743530693, "item_id": 46470668, "url": "https://news.ycombinator.com/item?id=46470668", "by": "positron26", "date": "2026-01-02", "stance": "neutral", "quote": "We use Leptos, Axum, Postgres with SQLx.", "excerpt": "Positron | Bootstrapping Startup | South Korea | Co-founder Equity-only co-founders. If you must take a salary position, send us a resume with \"Salary only\" and we'll check back later. We're developing an efficient social-decision model so that communities can organize social-finance campaigns and effectively administrate funds without being beholden to one creator. Keeping funds in the hands of backers creates accou", "context": "", "use_case": "database access", "switched_from": "", "story": "Ask HN: Who is hiring? (January 2026)"}, {"id": 742319793, "item_id": 46394987, "url": "https://news.ycombinator.com/item?id=46394987", "by": "awestroke", "date": "2025-12-26", "stance": "neutral", "quote": "I use Axum+SQLx", "excerpt": "I use Axum+SQLx and for html templates I use Maud. The plan is to move to Dioxus as a step 2", "context": "", "use_case": "Database queries", "switched_from": "", "story": "ZJIT is now available in Ruby 4.0"}, {"id": 740647873, "item_id": 46290492, "url": "https://news.ycombinator.com/item?id=46290492", "by": "tormeh", "date": "2025-12-16", "stance": "recommend", "quote": "sqlx the most popular sql library", "excerpt": "Axum is the most popular web library out there, and sqlx the most popular sql library. Together they look something like this: https://github.com/tokio-rs/axum/blob/main/examples%2Fsqlx-postgres%2Fsrc%2Fmain.rs", "context": "", "use_case": "", "switched_from": "", "story": "I'm a Tech Lead, and nobody listens to me. What should I do?"}]}