Database and language support
| Language | Plugin | MySQL | PostgreSQL | SQLite | ClickHouse | DuckDB | Spanner | SQL Server |
|---|---|---|---|---|---|---|---|---|
| Go | (built-in) | Stable | Stable | Beta | Beta | Beta | Beta | Beta |
| Go | sqlc-gen-go | Stable | Stable | Beta | N/A | N/A | N/A | N/A |
| Kotlin | sqlc-gen-kotlin | Beta | Beta | N/A | N/A | N/A | N/A | N/A |
| Python | sqlc-gen-python | Beta | Beta | N/A | N/A | N/A | N/A | N/A |
| TypeScript | sqlc-gen-typescript | Beta | Beta | N/A | N/A | N/A | N/A | N/A |
The built-in Go generator targets database/sql for ClickHouse, DuckDB,
Spanner and SQL Server, with the types their drivers hand back:
clickhouse-go,
duckdb-go,
go-sql-spanner and
go-mssqldb. DuckDB enums and SQL
Server alias types are not yet resolved and come out as any; ClickHouse
enums are strings. A DuckDB JSON column comes out as any, holding the value
the driver decodes the document into, and a JSON parameter is passed as its
text.
Community language support
New languages can be added via plugins.
| Language | Plugin | MySQL | PostgreSQL | SQLite |
|---|---|---|---|---|
| C# | DaredevilOSS/sqlc-gen-csharp | Stable | Stable | Stable |
| F# | kaashyapan/sqlc-gen-fsharp | N/A | Beta | Beta |
| Java | tandemdude/sqlc-gen-java | Beta | Beta | N/A |
| PHP | lcarilla/sqlc-plugin-php-dbal | Beta | N/A | N/A |
| Ruby | DaredevilOSS/sqlc-gen-ruby | Beta | Beta | Beta |
| Zig | tinyzimmer/sqlc-gen-zig | N/A | Beta | Beta |
| Python | rayakame/sqlc-gen-better-python | Beta | Stable | Stable |
| Rust | mathematic-inc/sqlc-gen-sqlx | N/A | Beta | N/A |
| [Any] | fdietze/sqlc-gen-from-template | Stable | Stable | Stable |
Plugins developed by our Community can also be found using our github topic.
Community projects
| Language | Project | MySQL | PostgreSQL | SQLite |
|---|---|---|---|---|
| Gleam | daniellionel01/parrot | Stable | Stable | Stable |