π Try the Playground Β Β·Β π Read the Docs Β Β·Β π Get Started Β Β·Β π Benchmarks
| 1.25M+ ops/sec | <1ΞΌs latency | 85% SQL-99 | 6 dialects | 0 race conditions |
|---|
GoSQLX is a production-ready SQL parsing SDK for Go. It tokenizes, parses, and generates ASTs from SQL with zero-copy optimizations and intelligent object pooling - handling 1.25M+ operations per second with sub-microsecond latency.
ast, _ := gosqlx.Parse("SELECT u.name, COUNT(*) FROM users u JOIN orders o ON u.id = o.user_id GROUP BY u.name")
// β Full AST with statements, columns, joins, grouping - ready for analysis, transformation, or formatting- Not an ORM - a parser. You get the AST, you decide what to do with it.
- Not slow - zero-copy tokenization, sync.Pool recycling, no allocations on hot paths.
- Not limited - PostgreSQL, MySQL, SQL Server, Oracle, SQLite, Snowflake. CTEs, window functions, MERGE, set operations.
- Not just a library - CLI, VS Code extension, GitHub Action, MCP server, WASM playground, Python bindings.
go get github.com/ajitpratap0/GoSQLXpackage main
import (
"fmt"
"github.com/ajitpratap0/GoSQLX/pkg/gosqlx"
)
func main() {
// Parse any SQL dialect
ast, _ := gosqlx.Parse("SELECT * FROM users WHERE active = true")
fmt.Printf("%d statement(s)\n", len(ast.Statements))
// Format messy SQL
clean, _ := gosqlx.Format("select id,name from users where id=1", gosqlx.DefaultFormatOptions())
fmt.Println(clean)
// SELECT
// id,
// name
// FROM users
// WHERE id = 1
// Catch errors before production
if err := gosqlx.Validate("SELECT * FROM"); err != nil {
fmt.Println(err) // β expected table name
}
}
go get github.com/ajitpratap0/GoSQLXgo install github.com/ajitpratap0/GoSQLX/cmd/gosqlx@latest
gosqlx validate "SELECT * FROM users"
gosqlx format query.sql
gosqlx lint query.sql |
code --install-extension ajitpratap0.gosqlxBundles the binary - zero setup. Learn more β claude mcp add --transport http gosqlx \
https://mcp.gosqlx.dev/mcp7 SQL tools in Claude, Cursor, or any MCP client. Guide β |
| Zero-copy tokenizer Recursive descent parser Full AST generation Multi-dialect engine |
SQL injection scanner 10 lint rules (L001βL010) Query complexity scoring Metadata extraction |
AST-based formatter Query transforms API VS Code extension GitHub Action |
| PostgreSQL Β· MySQL SQL Server Β· Oracle SQLite Β· Snowflake |
MCP server (7 tools) Public remote endpoint Streamable HTTP |
20K+ concurrent ops Zero race conditions ~85% SQL-99 compliance |
| Resource | Description | |
|---|---|---|
| π | gosqlx.dev | Website with interactive playground |
| π | Getting Started | Parse your first SQL in 5 minutes |
| π | Usage Guide | Comprehensive patterns and examples |
| π | API Reference | Complete API documentation |
| π₯οΈ | CLI Guide | Command-line tool reference |
| π | SQL Compatibility | Dialect support matrix |
| π€ | MCP Guide | AI assistant integration |
| ποΈ | Architecture | System design deep-dive |
| π | Benchmarks | Performance data and methodology |
| π | Release Notes | What's new in each version |
GoSQLX is built by contributors like you. Whether it's a bug fix, new feature, documentation improvement, or just a typo - every contribution matters.
git clone https://github.com/ajitpratap0/GoSQLX.git && cd GoSQLX
task check # fmt β vet β lint β test (with race detection)- Fork & branch from
main - Write tests - we use TDD and require race-free code
- Run
task check- must pass before PR - Open a PR - we review within 24 hours
π Contributing Guide Β· π Code of Conduct Β· ποΈ Governance
Apache License 2.0 - see LICENSE for details.
Built with β€οΈ by the GoSQLX community
gosqlx.dev Β· Playground Β· Docs Β· MCP Server Β· VS Code
If GoSQLX helps your project, consider giving it a β