Popular: Data updated November 9, 2026

Categories

Internet1,378
Communication323
Audio & video914
Graphics & design552
Office & productivity1,137
Developer tools3,178
AI tools555
Security & privacy396
System tools3,169
Games532
Education & science240
Network & IT291

Ruff 0.16.0 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.16.0

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

Released on 2026-07-23.

Check out the blog post for a migration guide and overview of the changes!

Breaking changes
- Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new Default Rules page for a full listing of the enabled rules.

- Ruff can now format Python code blocks in Markdown files and will do this by default. See the documentation for more details.

- Ruff now supports `ruff: ignore` comments at the ends of lines, like `noqa` comments, or on the line preceding a diagnostic. For example, these both suppress an `unused-import` (F401) diagnostic:

```py
import math # ruff: ignore[F401]

# ruff: ignore[F401]
import os
```

- Fixes are now shown in `check` and `format --check` output:

````console
❯ ruff format --check .
unformatted: File would be reformatted
--> try.md:1:1
|
1 | ```python
- import math
2 + import math
3 | ```
|

1 file would be reformatted
````

This example also shows off the Markdown formatting.

- `format --check` now supports the same output formats as the linter, including the `github` and `gitlab` outputs for rendering annotations in CI:

```console
❯ ruff format --check --output-format github .
::error title=ruff (unformatted),file=try.md,line=2,col=8,endLine=2,endColumn=10::try.md:2:8: unformatted: File would be reformatted
```

See the CLI help or documentation for the full list of supported formats.

- The `filename`, `location`, `end_location`, `fix.edits[].location`, and `fix.edits[].end_location` fields in the JSON output format may now be `null` rather than defaulting to the empty string and row 1, column 1, respectively.

Stabilization
The following rules have been stabilized and are no longer in preview:

- `airflow3-incompatible-function-signature` (AIR303)
- `missing-copyright-notice` (CPY001)
- `unnecessary-from-float` (FURB164)
- `sorted-min-max` (FURB192)
- `implicit-string-concatenation-in-collection-literal` (ISC004)
- `log-exception-outside-except-handler` (LOG004)
- `invalid-bool-return-type` (PLE0304)
- `too-many-positional-arguments` (PLR0917)
- `stop-iteration-return` (PLR1708)
- `none-not-at-end-of-union` (RUF036)
- `access-annotations-from-class-dict` (RUF063)
- `duplicate-entry-in-dunder-all` (RUF068)

The following behaviors have been stabilized:

- `blind-except` (BLE001) is now suppressed when the exception is logged via `logging` methods other than `critical`, `error` and `exception`.
- `future-required-type-annotation` (FA102) now checks for additional PEP 585-compatible APIs, such as those from `collections.abc`.
- `f-string-in-get-text-func-call` (INT001), `format-in-get-text-func-call` (INT002), and `printf-in-get-text-func-call` (INT003) now check for additional common ways of using the `gettext` module, such as assigning it to `builtins._`.
- `suspicious-url-open-usage` (S310) now resolves local string literal bindings to avoid more false positives.
- `snmp-insecure-version` (S508) and `snmp-weak-cryptography` (S509) now support the recommended API from newer versions of PySNMP.
- `typing-text-str-alias` (UP019) now recognizes `typing_extensions.Text` in addition to `typing.Text`.

Preview features
- [pyupgrade] Fix false positive with `TypeVar` default before Python 3.13 (UP040) (#26888)

Bug fixes
- [ruff] Fix missing check on unrecognized early bound (RUF016) (#26986)

Rule changes
- Insert a space after the colon in Ruff suppression comments (#27123)

Performance
- [pyupgrade] Speed up `unnecessary-future-import` (UP010) (#27047)

Documentation
- [ruff] Add missing period in "Why is this bad?" section (RUF200) (#26930)
- [flake8-simplify] Clarify `os.environ` behavior on Windows (SIM112) (#26972)
- [pydocstyle] Document fix safety (D400) (#26971)

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

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