OSS Tanbou

combine Python linting and formatting in one Rust-based CLI with 900+ rules, caching, and automatic fixes

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
49,889
Primary language
Rust
License
MIT
Repository last updated
Oct 3, 2026
On this page

Overview

Ruff is a Rust-based Python linter and code formatter. It combines more than 900 lint rules, automatic fixes, caching, and pyproject.toml configuration in one CLI so local development and CI can run the same code-quality checks with short feedback loops.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Run linting and formatting through one CLI

ruff check handles linting while ruff format handles formatting, allowing one tool to cover work commonly split across Flake8 plugins, isort, pyupgrade, Black, and related utilities.

Sources: [1]

Use more than 900 rules plus automatic fixes

Ruff implements a large rule set in Rust and can automatically fix selected findings such as unused imports when --fix is enabled. The stable default rules catch a broad set of common issues without extensive configuration.

Sources: [1]

Share configuration across editors, pre-commit, and CI

Configuration can live in pyproject.toml, ruff.toml, or .ruff.toml, while official integrations cover pre-commit, editors such as VS Code, and GitHub Actions.

Sources: [1]

Best fit

Fits Python teams consolidating lint and formatting tools while shortening feedback loops

It works well when developers want the same checks during editing, local commits, and large-repository CI without maintaining several overlapping tool configurations.

Sources: [1]

Before adoption

Migrate existing rule and formatter configurations incrementally

Ruff targets parity with several established tools, but configuration and diagnostics are not guaranteed to be identical. Start with stable defaults or a selected rule set, compare results with the existing CI pipeline, and expand deliberately.

Sources: [1]

Separate source-changing commands from check-only CI commands

ruff check --fix and ruff format can modify files. CI can instead use ruff check together with ruff format --check, leaving edits to developer workflows.

Sources: [1]

Treat preview mode as unstable and pin versions in automation

preview = true or --preview enables unstable rules, formatter changes, and interface updates that may change before stabilization. As of October 3, 2026, the latest stable release is 0.16.10, so automation should pin an intended version and review preview changes explicitly.

Sources: [1][2]

Official sources

  1. [1]Ruff 0.16.10 README(2026-10-03)
  2. [2]Ruff 0.16.10 release(2026-10-03)
  3. [3]Ruff 0.16.10 MIT license(2026-10-03)
Supplemental curator note

Ruff can simplify Python projects that currently combine Flake8 plugins, isort, Black, and related tools. A staged migration is safer than replacing every rule and formatter setting at once: start with stable defaults, compare CI output, then expand the rule set deliberately.

Try it in 3 steps

  1. 1

    Install Ruff 0.16.10 in a virtual environment

    Keep the existing Python environment isolated while pinning the stable Ruff CLI release.

    python3 -m venv .venv && . .venv/bin/activate && python -m pip install ruff==0.16.10
  2. 2

    Lint the project

    Run the default rule set over the current directory. This command does not modify source unless fix options are added.

    ruff check .
  3. 3

    Check formatting without rewriting files

    Report files that would be reformatted. Remove --check only when you intentionally want Ruff to rewrite them.

    ruff format --check .
Check the official README

Growth

Growth trends · Last 30 days

49,889 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
429
Open PRs
477

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • linter
  • pep8
  • python
  • python3
  • rust
  • rustpython
  • static-analysis
  • static-code-analysis
  • style-guide
  • styleguide
  • ruff
Stars
49,889
Forks
2,465
Watchers
139
Open issues
1,713
Contributors
448
Owner type
Organization
Primary language
Rust
License
MIT
Repository last updated
Oct 3, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?