Ruff alternatives: 8 open-source code quality and static analysis tools
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
About Ruff
Ruff is a listed code quality and static analysis tool: Python linter and code formatter written in Rust that covers Flake8, Black and isort functions in one tool.
Order: Listed tools in the same category, with tools in the same primary language (GitHub API) first, then by GitHub stars. Each line gives one fact from the tool's own documentation where it differs from what Ruff's documentation states, with its source.
8 alternatives to Ruff
ShellCheck: Languages or files analysed: Shell scripts in the sh, bash, dash, ksh and BusyBox dialects. source: Docs: shellcheck(1) manual
ESLint: Languages or files analysed: ECMAScript/JavaScript code; JSX parsing when enabled. source: README
mypy: Languages or files analysed: Python programs with type hints. source: README
golangci-lint: Languages or files analysed: Go code. source: README
Semgrep: Languages or files analysed: Community supported in Semgrep CE: C/C++, C#, Go, Java, JavaScript, TypeScript, Kotlin, Python, Ruby, Rust, PHP, Scala, Swift, Terraform. source: Docs: Supported languages for Semgrep Community Edition (CE)
Infer: Languages or files analysed: Java, C++, Objective-C and C. source: README
PHPStan: Languages or files analysed: PHP code. source: README
RuboCop: Languages or files analysed: Ruby code (targets Ruby 2.0 and later). source: README
Repository metrics
| Ruff | 49,7311 | 2026-09-1610.16.8 | 2026-09-221 | MIT | Rust | active |
|---|---|---|---|---|---|---|
| ShellCheck | 40,0671 | 2025-08-041v0.11.0 | 2026-09-211 | GPL-3.0 | Haskell | active |
| ESLint | 27,5161 | 2026-09-181v10.11.0 | 2026-09-221 | MIT | JavaScript | active |
| mypy | 20,6481 | 2026-08-151v2.3.1 | 2026-09-221 | MIT | Python | active |
| golangci-lint | 19,3941 | 2026-08-271v2.13.2 | 2026-09-201 | GPL-3.0 | Go | active |
| Semgrep | 16,7251 | 2026-09-101v1.177.0 | 2026-09-221 | LGPL-2.1 | C | active |
| Infer | 15,7061 | 2026-05-121v1.3.0 | 2026-09-181 | MIT | OCaml | active |
| PHPStan | 14,1061 | 2026-09-1212.2.14 | 2026-09-221 | MIT | PHP | active |
| RuboCop | 12,9051 | 2026-09-101v1.91.0 | 2026-09-221 | MIT | Ruby | active |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.