Comparison

PHPStan vs Ruff

On the evidence we track, Ruff leads this comparison with a composite score of 74/100. Scores are only directly comparable because these tools share a category; the full breakdown and every source is below.

Machine formatsJSONMarkdownGraphQLor send Accept: application/json
PHPStan53
Ruff74
Score
Vioscale score
PHPStan53 / 100medium · 53%
Ruff74 / 100high · 76%
Pricing
Free tier
PHPStan
Ruff
Model
Price level
PHPStanlow
Ruff
Transparent
PHPStan
Ruff
Integrations
Count
PHPStan3
Ruff6
Adoption
Dependent repos
PHPStan0
Ruff5,870
Github stars
PHPStan14,082
Ruff49,341
Package downloads weekly
PHPStan
Activity
Commits last 30d
PHPStan100
Ruff100
Release
Cadence days
PHPStan2
Ruff7
History
PHPStan20 items
License
Spdx
PHPStanMIT
RuffMIT
Language
Primary
PHPStanPHP
RuffRust

Capabilities

Feature-by-feature on the axes that matter for code quality tools. “-” means undocumented, not absent.

Core
Function
PHPStanStatic analyzer
RuffLinter
Language scope
PHPStanSingle-language
RuffSingle-language
Implementation language
PHPStanPHP
RuffRust
Capability
Autofix
PHPStan
Ruff
Config
Config model
PHPStanConfig file
Ruff-
Extensibility
Custom rules
PHPStan
Ruff-
Deployment
Deployment
PHPStan-
RuffCLI-local
Delivery
Editor integration
PHPStan
Ruff
CI / VCS gating
PHPStan
Ruff-
Insight
Code metrics
PHPStan-
Ruff-
Performance
Incremental / monorepo aware
PHPStan
Ruff
Licensing
Open-source
PHPStanOSS
RuffOSS
Commercial
Pricing model
PHPStanFree
RuffFree

What each one is

The product in its own terms, so the numbers below have context.

PHPStan

PHPStan is a static analysis tool for PHP that scans codebases to find bugs before they reach production. It offers both a free open-source version and a paid Pro tier with a web UI and continuous background analysis.

Independently observed

Ruff

Leader

A fast Python linter built in Rust that consolidates multiple linting tools into a single interface. It supports over 500 rules, provides automated fixes for common issues, and runs significantly faster than traditional Python linters on even very large codebases.

Independently observed

Pricing

List pricing as published by each vendor, with the date we read it. Always verify at the source before you buy.

PHPStan

HybridFree tier

Free open-source tier; Pro subscription available at undisclosed pricing

  • PHPStan (Free)Free
    • Bug detection
    • CLI interface
    • CI integration
    • Rule levels 0-10
    • Custom rules support
  • PHPStan ProSubscription required; exact pricing not disclosed
    • Web UI instead of CLI
    • Auto-refresh
    • Continuous background analysis
as of verify ↗

Ruff

Leader

Pricing not documented yet.

Platform & deployment

Where each product runs and how it can be hosted. A dash means undocumented, not unsupported.

Platforms
Web
PHPStan
Ruff
macOS
PHPStan
Ruff
Windows
PHPStan
Ruff
Linux
PHPStan
Ruff
CLI
PHPStan
Ruff
Deployment
Self-hosted
PHPStan
Ruff

Integrations

What each product connects to. Counts come from the vendor's own integration directory where one exists.

PHPStan

3 total
  • Symfony
  • Laravel
  • Doctrine
Independently observed

Ruff

Leader
6 total
  • Flake8
  • isort
  • Autoflake
  • Pyflakes
  • pycodestyle
  • Pylint
Independently observed

Comparison generated from independently-sourced facts. Every value links to its source and retrieval date. See the method.