Documentation
ยถ
Overview ยถ
Package gosqlx provides a high-performance SQL parsing SDK for Go with zero-copy tokenization and object pooling. It offers production-ready SQL lexing, parsing, and AST generation with support for multiple SQL dialects.
Features:
- Zero-copy tokenization for optimal performance - Object pooling for 60-80% memory reduction - Multi-dialect SQL support (PostgreSQL, MySQL, SQL Server, Oracle, SQLite) - Thread-safe implementation with linear scaling to 128+ cores - Full Unicode/UTF-8 support for international SQL - Performance monitoring and metrics collection - Visitor pattern support for AST traversal
Basic Usage:
import ( "github.com/ajitpratap0/GoSQLX/pkg/sql/tokenizer" "github.com/ajitpratap0/GoSQLX/pkg/sql/parser" "github.com/ajitpratap0/GoSQLX/pkg/sql/ast" ) // Get a tokenizer from the pool tkz := tokenizer.GetTokenizer() defer tokenizer.PutTokenizer(tkz) // Tokenize SQL tokens, err := tkz.Tokenize([]byte("SELECT * FROM users WHERE id = 1")) if err != nil { log.Fatal(err) } // Parse tokens into AST p := &parser.Parser{} astObj, err := p.Parse(tokens) if err != nil { log.Fatal(err) } defer ast.ReleaseAST(astObj)
Performance:
GoSQLX achieves: - 2.2M operations/second throughput - 8M tokens/second processing speed - <200ns latency for simple queries - Linear scaling to 128 cores - 60-80% memory reduction with pooling
For more examples and detailed documentation, see: https://github.com/ajitpratap0/GoSQLX
Directories
ยถ
Path | Synopsis |
---|---|
examples
|
|
cmd
command
|
|
sql-formatter
command
|
|
sql-validator
command
|
|
pkg
|
|
metrics
Package metrics provides production performance monitoring for GoSQLX
|
Package metrics provides production performance monitoring for GoSQLX |
models
Package models provides core data structures for SQL tokenization and parsing, including tokens, spans, locations, and error types.
|
Package models provides core data structures for SQL tokenization and parsing, including tokens, spans, locations, and error types. |
sql/ast
Package ast provides Abstract Syntax Tree (AST) node definitions for SQL statements.
|
Package ast provides Abstract Syntax Tree (AST) node definitions for SQL statements. |
sql/keywords
Package keywords provides SQL keyword definitions and categorization for multiple SQL dialects.
|
Package keywords provides SQL keyword definitions and categorization for multiple SQL dialects. |
sql/monitor
Package monitor provides performance monitoring and metrics collection for GoSQLX
|
Package monitor provides performance monitoring and metrics collection for GoSQLX |
sql/parser
Package parser provides a recursive descent SQL parser that converts tokens into an Abstract Syntax Tree (AST).
|
Package parser provides a recursive descent SQL parser that converts tokens into an Abstract Syntax Tree (AST). |
sql/tokenizer
Package tokenizer provides a high-performance SQL tokenizer with zero-copy operations
|
Package tokenizer provides a high-performance SQL tokenizer with zero-copy operations |