finds.dev← search

// the find

PRQL/prql

★ 10,873 · Rust · Apache-2.0 · updated Jul 2026

PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement

PRQL is a pipelined query language that compiles to SQL, targeting anyone who writes complex SQL and hates how it reads. Instead of SELECT at the top and WHERE at the bottom, you write a linear chain of transforms — filter, derive, group, aggregate — in the order they logically happen. It works against any SQL database since the output is plain SQL.

The pipeline model genuinely solves SQL's biggest readability problem: you no longer have to read a query inside-out to understand what it does. S-strings (escape hatch to raw SQL) mean you're never stuck when PRQL doesn't support something yet. The binding coverage is real — Rust, Python, JS, Java, .NET, Elixir, C — so you can drop it into almost any stack without shelling out to a subprocess. The compiler architecture is cleanly separated (parser → PL IR → RQ IR → SQL codegen), which makes it auditable and means bugs tend to be local rather than systemic.

The resolver is openly acknowledged as a bottleneck and is being rewritten — that's a red flag for production adoption, because bugs in name resolution affect correctness, not just ergonomics. Window function handling is still an open design question (issue #2723) which means a non-trivial class of analytics queries isn't fully supported. Compiler contributions are concentrated among a small group, and development has visibly slowed while the team figures out the new resolver; the June 2026 status note says it plainly. There's no story for DDL, DML (INSERT/UPDATE/DELETE), or anything beyond SELECT-style transformations, so it's a query layer, not a SQL replacement for anything beyond reads.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →