🌐 Try the Playground · 📖 Read the Docs · 🚀 Get Started · 📊 Benchmarks
| 1.38M+ ops/sec | <1μs latency | 85% SQL-99 | 8 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.38M+ 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, MariaDB, SQL Server, Oracle, SQLite, Snowflake, ClickHouse. 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 30 lint rules (L001–L030) 20 optimizer rules Metadata extraction |
AST-based formatter Query transforms API VS Code extension GitHub Action |
| PostgreSQL · MySQL · MariaDB SQL Server · Oracle SQLite · Snowflake · ClickHouse |
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
GoSQLX is downloaded and cloned by developers worldwide -- 595 unique cloners in just 14 days. If you're using GoSQLX in your project or organization, we'd love to hear about it!
Using GoSQLX at work? Building something cool with it? Share your story in GitHub Discussions -- it helps the community grow and motivates continued development.
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 ⭐
