Popular: Data updated November 7, 2026

Categories

Internet1,377
Communication323
Audio & video913
Graphics & design549
Office & productivity1,136
Developer tools3,175
AI tools552
Security & privacy397
System tools3,156
Games532
Education & science239
Network & IT291

Ruff 0.9.6 download

An extremely fast Python linter, written in Rust.

Astral Languages & SDKs #42 Languages & SDKs
This is an older version. The current version is 0.17.2. Ruff 0.17.2 · Released:

Installer files 0.9.6

ArchitectureTypeScopeFile sizeDownloadSHA256
64-bit ZIP → Portable — — github.com VirusTotal
ARM64 ZIP → Portable — — github.com VirusTotal
32-bit ZIP → Portable — — github.com VirusTotal

Link and SHA256 come from the Windows Package Manager community manifest. Compare the hash of the downloaded file before running it.

Release notes

Preview features
- [airflow] Add `external_task.{ExternalTaskMarker, ExternalTaskSensor}` for AIR302 (#16014)
- [flake8-builtins] Make strict module name comparison optional (A005) (#15951)
- [flake8-pyi] Extend fix to Python \<= 3.9 for `redundant-none-literal` (PYI061) (#16044)
- [pylint] Also report when the object isn't a literal (PLE1310) (#15985)
- [ruff] Implement `indented-form-feed` (RUF054) (#16049)
- [ruff] Skip type definitions for `missing-f-string-syntax` (RUF027) (#16054)

Rule changes
- [flake8-annotations] Correct syntax for `typing.Union` in suggested return type fixes for `ANN20x` rules (#16025)
- [flake8-builtins] Match upstream module name comparison (A005) (#16006)
- [flake8-comprehensions] Detect overshadowed `list`/`set`/`dict`, ignore variadics and named expressions (C417) (#15955)
- [flake8-pie] Remove following comma correctly when the unpacked dictionary is empty (PIE800) (#16008)
- [flake8-simplify] Only trigger SIM401 on known dictionaries (#15995)
- [pylint] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (PLE1310) (#15984)
- [pyupgrade] Comments within parenthesized value ranges should not affect applicability (UP040) (#16027)
- [pyupgrade] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (UP040) (#16026)
- [pyupgrade] Ensure we do not rename two type parameters to the same name (UP049) (#16038)
- [pyupgrade] [ruff] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (UP049, RUF052) (#16032)
- [ruff] Update RUF009 to behave similar to B008 and ignore attributes with immutable types (#16048)

Server
- Root exclusions in the server to project root (#16043)

Bug fixes
- [flake8-datetime] Ignore `.replace()` calls while looking for `.astimezone` (#16050)
- [flake8-type-checking] Avoid TC004 false positive where the runtime definition is provided by `__getattr__` (#16052)

Documentation
- Improve `ruff-lsp` migration document (#16072)
- Undeprecate `ruff.nativeServer` (#16039)

https://github.com/astral-sh/ruff/releases/tag/0.9.6

Most popular in Languages & SDKs

See all
  1. Go Programming LanguageAn open source programming language that makes it simple to build secure, scalable systems.
  2. LLVMA collection of modular and reusable compiler and toolchain technologies.
  3. DenoA modern runtime for JavaScript and TypeScript
  4. CMakeCMake is a cross-platform, open-source build system generator.
  5. YarnYarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
  6. CcacheCcache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again.
  7. sbtA build tool for Scala, Java, and more
  8. BOINCOpen-source software for volunteer computing and grid computing.
  9. Dart SDKA set of tools and libraries for the Dart programming language.
  10. TelegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

Tags

Share