https://github.com/ajitpratap0/GoSQLX
High-performance SQL parser, formatter, linter & security scanner for Go โ 1.5M+ ops/sec, multi-dialect, zero-copy, race-free
https://github.com/ajitpratap0/GoSQLX
ast cli dialect go golang lsp mysql parser postgresql query-analyzer security sql sql-formatter sql-injection sql-linter sql-parser sql-validator sqlite wasm zero-copy
Last synced: 10 days ago
JSON representation
High-performance SQL parser, formatter, linter & security scanner for Go โ 1.5M+ ops/sec, multi-dialect, zero-copy, race-free
- Host: GitHub
- URL: https://github.com/ajitpratap0/GoSQLX
- Owner: ajitpratap0
- License: apache-2.0
- Created: 2025-02-17T06:47:21.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-08T09:13:22.000Z (21 days ago)
- Last Synced: 2026-03-08T12:35:31.096Z (21 days ago)
- Topics: ast, cli, dialect, go, golang, lsp, mysql, parser, postgresql, query-analyzer, security, sql, sql-formatter, sql-injection, sql-linter, sql-parser, sql-validator, sqlite, wasm, zero-copy
- Language: Go
- Homepage: https://pkg.go.dev/github.com/ajitpratap0/GoSQLX
- Size: 9.27 MB
- Stars: 49
- Watchers: 1
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: .github/SECURITY_CHECKLIST.md
- Notice: NOTICE
Awesome Lists containing this project
- awesome-go - GoSQLX - High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground. (Database / Database Tools)
- fucking-awesome-go - GoSQLX - High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground. (Database / Database Tools)
- awesome-go-with-stars - GoSQLX - performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground. | 2026-03-17 | (Data Integration Frameworks / Database Tools)
- awesome-go - GoSQLX - High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground. (Database / Database Tools)
README
# GoSQLX

### Parse SQL at the speed of Go
[](https://go.dev)
[](https://github.com/ajitpratap0/GoSQLX/releases)
[](LICENSE)
[](http://makeapullrequest.com)
[](https://gosqlx.dev)
[](https://marketplace.visualstudio.com/items?itemName=ajitpratap0.gosqlx)
[](https://mcp.gosqlx.dev/health)
[](https://glama.ai/mcp/servers/ajitpratap0/GoSQLX)
[](https://github.com/marketplace/actions/gosqlx-lint-action)
[](https://github.com/ajitpratap0/GoSQLX/actions)
[](https://goreportcard.com/report/github.com/ajitpratap0/GoSQLX)
[](https://pkg.go.dev/github.com/ajitpratap0/GoSQLX)
[](https://github.com/ajitpratap0/GoSQLX)
**[๐ Try the Playground](https://gosqlx.dev/playground/)** ย ยทย **[๐ Read the Docs](https://gosqlx.dev/docs/)** ย ยทย **[๐ Get Started](docs/GETTING_STARTED.md)** ย ยทย **[๐ Benchmarks](https://gosqlx.dev/benchmarks/)**
| **1.25M+ ops/sec** | **<1ฮผs latency** | **85% SQL-99** | **6 dialects** | **0 race conditions** |
|:---:|:---:|:---:|:---:|:---:|
## What is GoSQLX?
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.
```go
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
```
### Why GoSQLX?
- **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.
## Get Started in 60 Seconds
```bash
go get github.com/ajitpratap0/GoSQLX
```
```go
package 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
}
}
```
## Install Everywhere
### ๐ฆ Go Library
```bash
go get github.com/ajitpratap0/GoSQLX
```
### ๐ฅ๏ธ CLI Tool
```bash
go install github.com/ajitpratap0/GoSQLX/cmd/gosqlx@latest
gosqlx validate "SELECT * FROM users"
gosqlx format query.sql
gosqlx lint query.sql
```
### ๐ป VS Code Extension
```bash
code --install-extension ajitpratap0.gosqlx
```
Bundles the binary - zero setup. [Learn more โ](https://gosqlx.dev/vscode/)
### ๐ค MCP Server (AI Integration)
```bash
claude mcp add --transport http gosqlx \
https://mcp.gosqlx.dev/mcp
```
7 SQL tools in Claude, Cursor, or any MCP client. [Guide โ](https://gosqlx.dev/docs/mcp_guide/)
## Features at a Glance
โก Parser
Zero-copy tokenizer
Recursive descent parser
Full AST generation
Multi-dialect engine
๐ก๏ธ Analysis
SQL injection scanner
10 lint rules (L001โL010)
Query complexity scoring
Metadata extraction
๐ง Tooling
AST-based formatter
Query transforms API
VS Code extension
GitHub Action
๐ Multi-Dialect
PostgreSQL ยท MySQL
SQL Server ยท Oracle
SQLite ยท Snowflake
๐ค AI-Ready
MCP server (7 tools)
Public remote endpoint
Streamable HTTP
๐งช Battle-Tested
20K+ concurrent ops
Zero race conditions
~85% SQL-99 compliance
## Documentation
| | Resource | Description |
|---|---|---|
| ๐ | **[gosqlx.dev](https://gosqlx.dev)** | Website with interactive playground |
| ๐ | **[Getting Started](https://gosqlx.dev/docs/getting_started/)** | Parse your first SQL in 5 minutes |
| ๐ | **[Usage Guide](https://gosqlx.dev/docs/usage_guide/)** | Comprehensive patterns and examples |
| ๐ | **[API Reference](https://gosqlx.dev/docs/api_reference/)** | Complete API documentation |
| ๐ฅ๏ธ | **[CLI Guide](https://gosqlx.dev/docs/cli_guide/)** | Command-line tool reference |
| ๐ | **[SQL Compatibility](https://gosqlx.dev/docs/sql_compatibility/)** | Dialect support matrix |
| ๐ค | **[MCP Guide](https://gosqlx.dev/docs/mcp_guide/)** | AI assistant integration |
| ๐๏ธ | **[Architecture](https://gosqlx.dev/docs/architecture/)** | System design deep-dive |
| ๐ | **[Benchmarks](https://gosqlx.dev/benchmarks/)** | Performance data and methodology |
| ๐ | **[Release Notes](https://gosqlx.dev/blog/)** | What's new in each version |
## Contributing
GoSQLX is built by contributors like you. Whether it's a bug fix, new feature, documentation improvement, or just a typo - every contribution matters.
```bash
git clone https://github.com/ajitpratap0/GoSQLX.git && cd GoSQLX
task check # fmt โ vet โ lint โ test (with race detection)
```
1. **Fork & branch** from `main`
2. **Write tests** - we use TDD and require race-free code
3. **Run `task check`** - must pass before PR
4. **Open a PR** - we review within 24 hours
๐ [Contributing Guide](CONTRIBUTING.md) ยท ๐ [Code of Conduct](CODE_OF_CONDUCT.md) ยท ๐๏ธ [Governance](GOVERNANCE.md)
## Community
## License
Apache License 2.0 - see [LICENSE](LICENSE) for details.
---
Built with โค๏ธ by the GoSQLX community
**[gosqlx.dev](https://gosqlx.dev)** ยท **[Playground](https://gosqlx.dev/playground/)** ยท **[Docs](https://gosqlx.dev/docs/)** ยท **[MCP Server](https://mcp.gosqlx.dev/mcp)** ยท **[VS Code](https://marketplace.visualstudio.com/items?itemName=ajitpratap0.gosqlx)**
If GoSQLX helps your project, consider giving it a โญ