JSQLFormatter vs SQLFluff
JSQLFormatter
manticore-projects.comSQLFluff
sqlfluff.comSide by side
| Figure | JSQLFormatter | SQLFluff |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · SQL Linters and Formatters | 8.3 (#5) | 8.0 (#10) |
| Parsing | It parses SQL into an abstract syntax tree using a real grammar rather than regular expressions. | It parses SQL to catch syntax issues without requiring database access. |
| Purpose | JSQLFormatter is a platform independent SQL formatter, beautifier and pretty printer. | SQLFluff is an open source, dialect-flexible SQL linter designed with ELT applications in mind. |
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.
SQLFluff
SQLFluff is an open-source, dialect-flexible SQL linter designed for ELT applications. It reports style and syntax issues, parses SQL without database access and can automatically fix many violations with one command. Documentation describes support for more than 25 dialects, including T-SQL, PostgreSQL, BigQuery and Snowflake, alongside more than 70 rules for style, structure and best practices. Jinja templating and dbt are supported, and CI/CD integration includes GitHub Actions output for pull-request annotations. SQLFluff is free under the MIT License and installs from PyPI with pip or another Python package manager. It does not execute SQL itself, but templating macros such as dbt's run_query may execute arbitrary SQL. The Jinja templater uses Jinja2 SandboxedEnvironment to limit unsafe code execution. The dbt templater requires the relevant adapter and sqlfluff-templater-dbt package; models accessing a database during compilation require database access. Community support includes documentation, GitHub, Slack and Stack Overflow.