Type-safe SQL queries
Kysely let's you write type-safe SQL queries. This eliminates entire classes of errors and let's you sleep peacefully at night.
No magic, just SQL
Kysely is a light abstraction layer over SQL. This makes it easy to reason about performance, and reduces the amount of concepts you need to learn to be proficient with the library.
Great autocompletion
By exposing your database schema to the TypeScript compiler, you get autocompletion on table names, column names, aliases, etc.
Multi-dialect support
PostgreSQL, MySQL, or SQLite? We've got you covered. There's also a growing ecosystem of 3rd party dialects, including PlanetScale, D3, SurrealDB, and more. Learn more.
Runs on every environment
Kysely runs on node.js, the browser, serverless and edge environments, even on Deno! Learn more.
Extensible core
Kysely comes with a plugin system that lets you extend the core with your own functionality. Learn more.
What the internet is saying
Developers are loving Kysely for it's simplicity and power.
![Lee "leerob" Robinson's avatar picture](/img/avatars/leerob.jpeg)
![Orta Therox's avatar picture](/img/avatars/orta.jpeg)
![Ben Holmes's avatar picture](/img/avatars/benholmes.jpeg)
![Julius Marminge's avatar picture](/img/avatars/julius.jpeg)
![Shoubhit "nexxel" Dash's avatar picture](/img/avatars/nexxel.jpeg)
![Tim Griesser's avatar picture](/img/avatars/tgriesser.jpeg)
![Dax "thdxr" Raad's avatar picture](/img/avatars/daxraad.jpeg)
![Harminder Virk's avatar picture](/img/avatars/harminder.jpeg)
![Gal Schlezinger's avatar picture](/img/avatars/gal.jpeg)
![Yusuke "yusukebe" Wada's avatar picture](/img/avatars/yusuke.jpeg)
!["pilcrow"'s avatar picture](/img/avatars/pilcrowonpaper.jpeg)
![Theo "t3dotgg" Browne's avatar picture](/img/avatars/theo.jpeg)
![Nicholas Griffin's avatar picture](/img/avatars/nicholas.jpeg)
![R. Alex Anderson's avatar picture](/img/avatars/alexanderson.jpeg)
![Ross Coundon's avatar picture](/img/avatars/ross.jpeg)
![Alberto "gimenete" Gimeno's avatar picture](/img/avatars/alberto.jpeg)
![Johan Eliasson's avatar picture](/img/avatars/johan.jpeg)
![Mehul Mohan's avatar picture](/img/avatars/mehul.jpeg)
![Sam Cook's avatar picture](/img/avatars/samcook.jpeg)
![Gannon Hall's avatar picture](/img/avatars/gannon.jpeg)
![Alisson "thelinuxlich" C.Agiani's avatar picture](/img/avatars/sommelier.jpeg)
Looking for code examples?
From finding a single record to complex joins, our docs have examples to get you started quickly.
Jump right in