JSQLFormatter vs Sqruff
JSQLFormatter
manticore-projects.comSqruff
github.comSide by side
| Figure | JSQLFormatter | Sqruff |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · SQL Linters and Formatters | 8.3 (#5) | 7.5 (#17) |
| Configuration | Indent width, comma placement, and keyword, function and object casing can be configured per invocation, file or statement. | Sqruff reads dialect and rule settings from a project `.sqruff` configuration file. |
| Maker | Manticore Projects describes itself as a consulting company for financial valuation, reporting and credit risk management. | The GitHub organization describes Quary as an open-source analytics platform for engineers and lists the United Kingdom as its location. |
| Purpose | JSQLFormatter is a platform independent SQL formatter, beautifier and pretty printer. | Sqruff is a SQL linter and formatter written in Rust, focused on formatting valid SQL for specific dialects and providing fast linting and fixing. |
Plans
In their own words
JSQLFormatter
JSQLFormatter formats SQL for terminal output, documents, and wikis, and is available as a Java library or command-line executable. It parses SQL with a grammar into an abstract syntax tree rather than relying on regular expressions. Supported statements include SELECT, INSERT, MERGE, UPDATE, DELETE, CREATE, and ALTER, including WITH clauses and nested sub-selects. The listed dialects cover Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, H2, DuckDB, BigQuery, Redshift, Databricks, and Snowflake. Formatting can preserve comments between keywords or within join conditions, while leaving comment-like string literals unchanged. Users can configure indentation, comma placement, and the casing of keywords, functions, and objects, with settings applied per invocation, file, or statement. Output options include ANSI terminal highlighting, HTML, and RTF. A Java-source feature imports SQL strings while retaining variables and can export them as String, StringBuilder, or MessageFormat. JSQLFormatter is free. Its license is Apache 2.0 from version 5.4 onward; releases through 5.3 were AGPL. A NetBeans plugin is a platform target, while Eclipse, JEdit, Squirrel SQL, and DBeaver are listed as planned.
Sqruff
Sqruff is a free SQL linter and formatter written in Rust, focused on formatting valid SQL for particular dialects and providing linting and fixes. It offers configurable automated formatting, custom rules, and column-level data lineage analysis for SQL queries. Dialects include ANSI, Athena, BigQuery, ClickHouse, Databricks, DuckDB, MySQL, Oracle, Postgres, Snowflake, SQLite, and Trino, among others. Dialect and rule settings are read from a project `.sqruff` configuration file. Developers can use the maintained VS Code and Zed integrations, or an LSP server with other LSP-capable editors. A documented GitHub Action supports use in CI, and a browser playground is available. Installation options include Homebrew, a bash installer, pip, cargo, binary releases, and an official Docker image. The public repository provides an Apache-2.0 license. The project identifies dbt project support as experimental and is associated with Quary, an open-source analytics platform for engineers based in the United Kingdom.