Skip to content

banshee

One fast binary that parses, formats, lints and serves an LSP for PostgreSQL SQL — and keeps working on broken SQL.

One binary, three jobs

Format, lint (with autofixes), and a language server — not a formatter or a linter you wire together.

Works on broken SQL

A lossless, error-recovering CST means editors get diagnostics on half-typed statements, not a hard parse failure.

Correct by construction

Every statement is cross-checked against PostgreSQL’s own parser (libpg_query) in a differential test.

Postgres-native

JSONB / JSONPath plus a squawk-class migration-safety pack (MG01–MG16) that generic SQL tools don’t have.

Compiled Rust, no Python or Perl runtime to start per file. Formatting a 400-statement / 60 KB Postgres file (median of 20 runs, including process startup):

toolmedianvs banshee
banshee~11 ms
sqlfluff 4.2~257 ms~24× slower
pgFormatter 5.10~1170 ms~105× slower

Reproduce with scripts/bench.sh.