用途
GoSQLX 是一个面向 Go 语言的生产级 SQL 解析 SDK。它的定位是解析器而非 ORM:负责对 SQL 进行词法分析、语法解析并生成抽象语法树(AST),后续如何使用 AST 由开发者自行决定。
主要能力
- SQL 解析:将 SQL 文本分词、解析并生成 AST。
- 格式化与静态检查(linter)。
- 安全扫描。
- 元数据提取。
- 多方言支持:PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、SQLite、Snowflake、ClickHouse。
- 语法特性支持:CTE、窗口函数、MERGE、集合操作。
- 性能优化:零拷贝分词、sync.Pool 对象池回收、热路径无分配、无数据竞争。
性能数据
官方资料给出的基准:解析一个简单 SELECT(如 SELECT id, name FROM users)约 318 纳秒,约 310 万次解析/秒;标题中标注 150 万次以上操作/秒。该数据为解析阶段(预分词输入到 AST),测试环境为 Apple M4、Go 1.27,取 10 次运行的中位数。复杂查询耗时更长,可参考 performance_baselines.json。复现命令:go test -run ^$ -bench BenchmarkPerformanceBaseline -benchmem -count=10 ./pkg/sql/parser/。
使用方式
资料中列出的接入形态包括:
- Go 库(SDK)。
- CLI 命令行工具。
- VS Code 扩展:内置二进制,零配置。
- GitHub Action。
- MCP 服务器:在 Claude、Cursor 或任意 MCP 客户端中提供 7 个 SQL 工具。
- WASM 在线演练场(Playground)。
- Python 绑定。
官方入口:gosqlx.dev,以及 Playground、Docs、MCP Server、VS Code 相关页面。具体安装命令与代码示例在提供的资料中暂未给出。
适用场景
- 需要在 Go 项目中解析、校验或格式化 SQL 的开发者。
- 需要对 SQL 做静态检查或安全扫描的工程流程。
- 需要从 SQL 中提取元数据的工具链。
- 需要跨多种数据库方言处理 SQL 的场景。
- 通过 MCP 将 SQL 能力接入 AI 客户端的工作流。
限制与说明
- 资料未提供具体收费、价格或授权之外的功能细节;项目采用 Apache License 2.0。
- 性能数据为特定环境下的基准结果,复杂查询耗时更长。
- 资料未提供完整的安装命令、API 用法示例与各平台支持细节,这些内容暂未提供。
- 贡献流程要求:从 main 分支 fork 并创建分支、编写测试(采用 TDD 且要求无数据竞争)、运行
task check通过后再提交 PR。