Ruff
An extremely fast Python linter and code formatter, written in Rust.
What it does
Why it matters
Before Ruff, "run the linter" was a coffee-break activity on large codebases. Ruff made linting and formatting effectively instantaneous — and in doing so changed behavior: when the check takes 50ms, developers run it on every save instead of in CI. Speed didn't just improve the tool; it improved the habit.
Engineering notes
- 800+ rules, one binary. Implements the rule sets of a dozen legacy tools behind a familiar config surface, so adoption doesn't require relearning.
- Formatter + linter that agree. Black-compatible formatting plus import sorting plus linting in a single pass — no more tools fighting over the same file.
- LSP-native. The language server brings the same speed into the editor, with fix-on-save that developers actually leave enabled.
Limitations
- Not every exotic Flake8 plugin has an equivalent rule; plugin authors are still catching up.
- Auto-fix is powerful but occasionally opinionated — review large
ruff check --fixdiffs before committing.
Related projects
uv
An extremely fast Python package and project manager, written in Rust.
uv replaces pip, pip-tools, pipx, poetry, pyenv, and virtualenv with a single binary that resolves and installs Python dependencies 10–100x faster. It's the rare tool that deletes an entire category of workflow friction.
Bun
An all-in-one JavaScript runtime, bundler, test runner, and package manager.
Bun collapsed the Node.js toolchain — runtime, transpiler, bundler, test runner, package manager — into a single Zig binary that's dramatically faster at nearly everything. Cohesion as a performance strategy.
Canonical URL: https://notvibescoded.com/projects/ruff