syntaqlite - SQLiteネイティブの文法とトークナイザーに基づくSQLパーサー・フォーマッター・バリデーター・言語サーバー
(github.com/lalitMaganti)- SQLiteのLemon生成文法とトークナイザーをCで直接コンパイルして使うツールで、汎用SQLパーサーがSQLiteを「フレーバー」として近似する方式の限界を解消
sqlite3_prepareが検出するエラーをDB接続なしでスキーマに照らして検証し、sqlite3とは異なり1回のパスですべてのエラーをソース位置・修正提案とともに報告--sqlite-version 3.32.0のように特定のSQLiteバージョンへ固定できるため、Androidなどの旧バージョンSQLite環境でサポートされない構文(RETURNINGなど)を事前検出- 22個のコンパイル時フラグ(
SQLITE_ENABLE_MATH_FUNCTIONSなど)を反映し、ターゲットビルドと正確に一致する検証を実行 - SQLiteアップストリームのテストスイート約39万6千文に対して約99.7%のパース受理一致率
- 決定論的SQLフォーマッターを内蔵し、行幅・キーワードの大文字小文字・インデントを設定可能
- Python・TypeScript文字列内のSQLを抽出し、補間ホールを処理したうえで検証する実験的機能を含む
syntaqlite.tomlプロジェクト設定ファイルにより、globごとのスキーママッピング・フォーマットオプションをLSP・CLI・エディターが自動ロード- LSP対応により、VS Code拡張・Zed拡張・Claude Codeプラグインを提供し、DB接続なしで診断・自動補完・セマンティックハイライトが動作
- ブラウザーでWASMとして動作するWeb Playgroundを提供
- Rust・Python・JavaScript(WASM)・Cライブラリとして利用可能で、インストールはpip・Homebrew・Cargo・mise・curlのワンライナーに対応
- パーサー・トークナイザーはC、フォーマッター・バリデーター・LSPはRustで実装した二層アーキテクチャ
- Apache 2.0ライセンス
まだコメントはありません。