A SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WASM
npm install sqlparser-rs



A SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WebAssembly.
- Parse SQL into a detailed AST with full TypeScript types
- Support 14 SQL dialects (PostgreSQL, MySQL, SQLite, BigQuery, and more)
- Run in Node.js and browsers
- Stay small (~600KB gzipped) and fast (Rust + WebAssembly)
- Ship zero native dependencies
``bash`
npm install sqlparser-rs
`typescript
import { parse, format, validate } from 'sqlparser-rs';
// Parse SQL into AST
const ast = parse('SELECT * FROM users');
// With specific dialect
const ast = parse('SELECT * FROM users WHERE id = $1', 'postgresql');
// Format SQL
const sql = format('select * from users');
// "SELECT * FROM users"
// Validate SQL (throws on invalid)
validate('SELECT * FROM users'); // ok
`
`typescript
// Parse and inspect
const ast = parse('SELECT id, name FROM users WHERE active = true');
console.log(JSON.stringify(ast, null, 2));
// Multiple statements
const statements = parse(
SELECT * FROM users;
SELECT * FROM orders;);
console.log(statements.length); // 2
// Modify AST and convert back to SQL
const ast = parse('SELECT * FROM users')[0];
// ... modify ast ...
const sql = format(JSON.stringify([ast]));
`
`typescript`
try {
parse('SELEC * FORM users');
} catch (e) {
console.error(e.message); // Parse error details
}
generic, ansi, mysql, postgresql, sqlite, snowflake, redshift, mssql, clickhouse, bigquery, duckdb, databricks, hive, oracle`
Apache-2.0