Clippy

What Clippy is
Clippy is a free, open-source collection of Rust lints for finding common mistakes and improving code. It includes more than 800 lints across correctness, suspicious patterns, style, complexity, performance, pedantic, restriction, nursery, and Cargo categories. The default group covers correctness, suspicious, style, complexity, and performance, while users can change lint levels from the command line or in source code. Clippy runs as the `cargo clippy` subcommand or through `clippy-driver`. The `cargo clippy --fix` command can apply some suggestions automatically, although applicability information indicates when human review may be needed. Cargo workspace options include selecting a package and using `--no-deps`. Clippy is usually installed with rustup, but minimal-profile Rust toolchains do not include it automatically. Projects can set a minimum supported Rust version so lints involving newer language features can be adjusted or suppressed. Configuration may use `clippy.toml` or `.clippy.toml`, though that file is described as unstable. Documentation recommends CI use with warnings treated as errors and the same toolchain as the compiler. Clippy supports Linux, macOS, and Windows.
Who it suits
Clippy suits Rust developers who want categorized lint checks, optional automatic fixes, and CI integration. It is useful for projects that need configurable lint levels or workspace-aware checks.
What it does well
- More than 800 Rust lints
- Runs through Cargo or clippy-driver
- Some suggestions can be applied automatically
- Supports CI with warnings treated as errors
- Works on Linux, macOS, and Windows
What to know first
- Minimal Rust profiles exclude Clippy automatically
- Pedantic lints can produce occasional false positives
- Restriction category may flag reasonable code
- Configuration file support is described as unstable
Verdict
Clippy offers broad, configurable lint coverage for Rust projects, including workspace and CI workflows. Developers should review automated suggestions and enable restrictive categories selectively.
Facts from Clippy's own pages
- Automatic fixes
- `cargo clippy --fix` can automatically apply some lint suggestions and implies `--all-targets`. · doc.rust-lang.org, 9 Oct 2026
- CI use
- Clippy's documentation recommends running it in CI with warnings treated as errors. · doc.rust-lang.org, 9 Oct 2026
- Configurable levels
- Users can change lint levels by category, and the default lint group includes correctness, suspicious, style, complexity, and performance lints. · doc.rust-lang.org, 8 Oct 2026
- Configuration
- Lint levels can be changed on the command line or in source code, and Clippy supports configuration through `clippy.toml`. · doc.rust-lang.org, 9 Oct 2026
- Continuous integration
- The documentation recommends running Clippy in CI with warnings treated as errors and using Clippy from the same toolchain as the project compiler. · doc.rust-lang.org, 8 Oct 2026
- False positives
- The pedantic lint group is described as strict and as allowing occasional false positives. · doc.rust-lang.org, 9 Oct 2026
- GitHub Actions
- The documentation says GitHub-hosted runners with the latest stable Rust have Clippy preinstalled. · doc.rust-lang.org, 9 Oct 2026
- How to run
- Clippy runs as the `cargo clippy` subcommand or directly through `clippy-driver`. · doc.rust-lang.org, 9 Oct 2026
- Installation
- Clippy is usually included with rustup toolchains and can be added with `rustup component add clippy`; the minimal profile does not install it automatically. · doc.rust-lang.org, 9 Oct 2026
- License
- The Clippy repository is licensed under either Apache License 2.0 or MIT, at the licensee's option. · github.com, 9 Oct 2026
- Lint categories
- Lint groups include correctness, suspicious, style, complexity, performance, pedantic, restriction, nursery, and Cargo. · doc.rust-lang.org, 9 Oct 2026
- Lint configuration
- Some lint settings can be configured in clippy.toml or .clippy.toml, and the documentation says this configuration file is unstable and may be deprecated. · doc.rust-lang.org, 8 Oct 2026
- Lint count
- The lint list contains 837 lints. · rust-lang.github.io, 9 Oct 2026
- Notable limitation
- The documentation warns that restriction lints may flag reasonable code, lack an alternative suggestion, or contradict other lints, and advises against enabling the whole category. · doc.rust-lang.org, 9 Oct 2026
- Purpose
- Clippy is a collection of lints that catches common mistakes and improves Rust code. · doc.rust-lang.org, 9 Oct 2026
- Restriction limits
- The documentation advises against enabling the entire restriction lint category because its lints may flag reasonable code, lack alternatives, or conflict with other lints. · doc.rust-lang.org, 8 Oct 2026
- Rust version support
- Projects can configure a minimum supported Rust version so Clippy can adjust or suppress lints involving newer language features. · doc.rust-lang.org, 8 Oct 2026
- Suggestion confidence
- Clippy suggestions carry applicability information because some suggestions may be incorrect and need human supervision. · doc.rust-lang.org, 8 Oct 2026
- Support
- The Clippy contribution guide directs people with questions to GitHub issues or the #t-clippy Zulip stream. · github.com, 9 Oct 2026
- Ways to run
- Clippy can run as a Cargo subcommand or directly through the clippy-driver binary. · doc.rust-lang.org, 8 Oct 2026
- Workspace support
- Clippy supports Cargo workspace options, including selecting a package and using --no-deps. · doc.rust-lang.org, 8 Oct 2026
Where Clippy stands on Freedom251
- Linters#18 of 33