๐Ÿ“š GoSQLX - Awesome Go Library for Database

Go Gopher mascot for GoSQLX

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

๐Ÿท๏ธ Database
๐Ÿ“‚ Database Tools
โญ 0 stars
View on GitHub ๐Ÿ”—

Detailed Description of GoSQLX

GoSQLX

GoSQLX Logo

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

โšก 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 ยท MariaDB
SQL Server ยท Oracle
SQLite ยท Snowflake ยท ClickHouse

๐Ÿค– AI-Ready

MCP server (7 tools)
Public remote endpoint
Streamable HTTP

๐Ÿงช Battle-Tested

20K+ concurrent ops
Zero race conditions
~85% SQL-99 compliance

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?

Discussions Issues Blog


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