Awesome Go

GoSQLX

CategoryDatabase
SubcategoryDatabase Tools
Stars0

High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground

About GoSQLX

GoSQLX

Parse SQL at the speed of Go

Go Version Release License PRs Welcome

Website VS Code MCP Glama MCP Server Lint Action

Tests Go Report GoDoc Stars OpenSSF Scorecard

๐ŸŒ Try the Playground ย ยทย  ๐Ÿ“– Read the Docs ย ยทย  ๐Ÿš€ Get Started ย ยทย  ๐Ÿ“Š Benchmarks

1.38M+ ops/sec<1ฮผs latency85% SQL-998 dialects0 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.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

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, 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.

Get Started in 60 Seconds

go get github.com/ajitpratap0/GoSQLX
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

go get github.com/ajitpratap0/GoSQLX

๐Ÿ–ฅ๏ธ CLI Tool

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

code --install-extension ajitpratap0.gosqlx

Bundles the binary - zero setup. Learn more โ†’

๐Ÿค– MCP Server (AI Integration)

claude mcp add --transport http gosqlx \
  https://mcp.gosqlx.dev/mcp

7 SQL tools in Claude, Cursor, or any MCP client. Guide โ†’

Features at a Glance

Documentation

ResourceDescription
๐ŸŒgosqlx.devWebsite with interactive playground
๐Ÿš€Getting StartedParse your first SQL in 5 minutes
๐Ÿ“–Usage GuideComprehensive patterns and examples
๐Ÿ“„API ReferenceComplete API documentation
๐Ÿ–ฅ๏ธCLI GuideCommand-line tool reference
๐ŸŒSQL CompatibilityDialect support matrix
๐Ÿค–MCP GuideAI assistant integration
๐Ÿ—๏ธArchitectureSystem design deep-dive
๐Ÿ“ŠBenchmarksPerformance data and methodology
๐Ÿ“Release NotesWhat'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.

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 ยท ๐Ÿ“œ Code of Conduct ยท ๐Ÿ›๏ธ Governance

Who's Using GoSQLX?

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!

Project / CompanyUse Case
Your project hereAdd yourself via PR or tell us in Discussions

Using GoSQLX at work? Building something cool with it? Share your story in GitHub Discussions -- it helps the community grow and motivates continued development.

Community

Got questions? Ideas? Found a bug?

License

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 โญ

Frequently Asked Questions

What is GoSQLX?

GoSQLX is a Database library for the Go programming language. High-performance SQL parser, formatter, linter, and security scanner with multi-dialect support and WASM playground

How do I install GoSQLX?

Install GoSQLX with the Go module system using `go get ajitpratap0/GoSQLX`. Check the repository for the current installation instructions.

What category does GoSQLX belong to?

GoSQLX is listed under Database, specifically Database Tools.

โ† Back to Database Tools