sqlc README

The project's README from github.com/sqlc-dev/sqlc. As one markdown file: README.md.

sqlc: A SQL Compiler

go Go Report Card

sqlc generates type-safe code from SQL. Here's how it works:

  1. You write queries in SQL.
  2. You run sqlc to generate code with type-safe interfaces to those queries.
  3. You write application code that calls the generated code.

Check out an interactive example to see it in action, and the introductory blog post for the motivation behind sqlc.

Overview

Supported languages

Additional languages can be added via plugins.

Sponsors

Development is possible thanks to our sponsors. If you would like to support sqlc, please consider sponsoring on GitHub.

Coder.com Mint.fun Mux.com

Cyberax - NaNuNaNu - Stumble - WestfalNamur - alecthomas - cameronnewman - danielbprice - davherrmann - dvob - gilcrest - gzuidhof - jeffreylo - mmcloughlin - ryohei1216 - sgielen

sqlc (sqlc-dev/sqlc)

Searching Database…

18.4K ·GitHub
这是什么?sqlc 是一个 SQL 编译器:你用普通的 SQL 写好查询语句,它会生成类型安全的代码,里面带有调用这些查询的接口,供你的应用程序使用。
这和用 ORM 有什么不同?你继续写真正的 SQL——sqlc 会把这些查询编译成应用程序可以调用的类型安全代码,而不用你手工维护数据表和对象之间的映射。
我怎么上手?先安装 sqlc 可执行文件,把查询语句写成 SQL 文件,运行 sqlc 生成代码,然后在你的应用程序里调用这些生成的函数。
它能为哪些语言生成代码?通过官方的 sqlc-gen 插件可以生成 Go、Kotlin、Python 和 TypeScript 的代码,还可以通过插件系统支持更多语言。
它能在 Windows、macOS 和 Linux 上运行吗?可以——sqlc 是一个单一的 Go 工具,通过它的 Downloads 页面分发,而 Go 本身就能原生构建出 Windows、macOS 和 Linux 版本。
为什么要把 SQL 编译成代码,而不是直接用 ORM?README 里链接了一篇介绍性的博客文章讲这个动机;思路是让你的 SQL 始终作为唯一的事实来源,而调用它的代码则是自动生成且类型安全的。
sqlc 可以免费使用吗?可以——它是采用 MIT 许可证的开源项目,开发工作由 GitHub Sponsors 赞助支持。
sqlc 在运行时会碰我的数据库吗?不会——它是一个构建期的工具:你运行它来生成代码,到了运行时,你的应用程序只是像调用项目里的其他代码一样调用这些生成的函数。
What are similar projects?ent, diesel, typeorm, usql, efcore, migrate, drizzle-orm, sequelize
Creator
sqlc-dev
Size
24.1 MB
Stars
18.4K
Age
7y
Commits · 90 Days