🌐
GitHub
github.com › eslint › eslint › discussions › 16557
Complete rewrite of ESLint · eslint/eslint · Discussion #16557
Right now we have both an ESLint class and a Linter class, which is confusing and they both do a lot more than just lint. I'd like to completely rethink the public API and provide both high-level APIs suitable for building things like StandardJS and the VSCode plugin and low-level APIs that adhere to the single-responsibility principal to make it possible to do more creative mixing and matching. Rust-based replacements.
Author   eslint
🌐
Reddit
reddit.com › r/rust › oxlint reaches general availability - an alternative to eslint that's 50-100x faster (written in rust)
r/rust on Reddit: Oxlint reaches general availability - an alternative to ESLint that's 50-100x faster (written in Rust)
December 15, 2023 - One tool to look at for this is ast-grep (also written in Rust). It uses tree-sitter to find/replace or lint parts of your source code, and its capabilities to match certain syntax constructs are quite advanced. ... The point of prettier is that there isn't any configs. How is that a nightmare? ... Using it together with ESLint (by making Prettier a plug-in which reports its formatting changes as ESLint auto-fix errors), and with TypeScript, and with your reactive frontend framework of choice, and with various other ESLint plugins.
🌐
JetBrains
jetbrains.com › help › rust › eslint.html
ESLint | RustRover Documentation
You can choose to specify all the configuration settings manually or disable ESLint. With automatic configuration, RustRover uses the ESLint package from the project node_modules folder and the configuration file from the folder where the current file is stored.
🌐
Hacker News
news.ycombinator.com › item
Oxlint – JavaScript linter written in Rust | Hacker News
December 25, 2023 - If you just use linting for checking a bit of stylistic policy, any replacement might be fine. However, linting is much more than that and if you are depending on third party rules or writing your own ([link redacted]), there is no way around ESLint · Adding logic into linters blurs separation ...
🌐
Paularmstrong
paularmstrong.dev › blog › 2024 › 02 › 23 › 2024-02-23-rust-based-javascript-linters-have-a-major-issue
Rust-based JavaScript linters have a major issue • Paul Armstrong
February 23, 2024 - It cannot be denied just how _fast_ Rust-based linters for JavaScript are. The major tools available now are [Biome](https://biomejs.dev) and [Oxc](https://oxc-project.github.io/), both running at nearly 100x the speed of ESLint. But they have one major drawback and I don't think they're going to take over ESLint without it…
🌐
GitHub
github.com › rslint › rslint
GitHub - rslint/rslint: A (WIP) Extremely fast JavaScript and TypeScript linter and Rust crate · GitHub
A (WIP) Extremely fast JavaScript and TypeScript linter and Rust crate - rslint/rslint
Starred by 2.7K users
Forked by 80 users
Languages   Rust 97.3% | TypeScript 2.0%
🌐
DEV Community
dev.to › bernardkibathi › revolutionize-your-code-oxlint-launches-as-a-blazing-fast-rust-powered-alternative-to-eslint-403n
Revolutionize Your Code: Oxlint Launches as a Blazing-Fast Rust-Powered Alternative to ESLint - DEV Community
December 16, 2023 - Compatibility: Works with most configurations and plugins designed for ESLint. Before you can utilize Oxlint, you need to install it. Make sure you have Rust installed on your system; if not, you can install it using rustup.
🌐
Joshuakgoldberg
joshuakgoldberg.com › blog › rust-based-javascript-linters-fast-but-no-typed-linting-right-now
Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now | Goldblog
Most of the time, when we’ve seen projects with slow type-checked linting, the root cause was either a misconfiguration of typescript-eslint (see our Performance Troubleshooting) or slow TypeScript types. No Rust-based linter has integrated with TypeScript’s type checking APIs yet.
🌐
Medium
medium.com › @jogarcia › try-biome-an-alternative-to-prettier-and-eslint-319497615eda
Try Biome. An alternative to Prettier and Eslint | by Jose Garcia | Medium
May 27, 2025 - Eslint is the linter of preference in the JS community. The one to rule them all. In this article, I will cover the pros and cons of Biome. So. What makes this tool special? A 97% compatibility to be exact. According to themselves. If you were thinking: “I want something that is not Prettier but I don’t want the pain of migrating”. Look no further. A while ago the guys at Prettier offered a reward to make a rewrite on Rust.
Find elsewhere
🌐
Hacker News
news.ycombinator.com › item
Complete Rewrite of ESLint | Hacker News
November 2, 2022 - https://docs.google.com/document/u/0/d/1_WvwHl7BXUPmoiSeD8G8 · I've always been curious about the trade-off between "second-system syndrome" and "learning from experience". Do people have examples of rewrites that went well and those that didn't
🌐
Oxidation Compiler
oxc.rs
The JavaScript Oxidation Compiler
A collection of high-performance JavaScript tools written in Rust · Get Started View on GitHub · linter · formatter · parser · transformer · resolver · minifier · Linter · Catch bugs before they make it to production · 50~100x faster ...
🌐
Reddit
reddit.com › r/rust › parts of eslint may be rewritten in rust for performance
r/rust on Reddit: Parts of ESLint May Be Rewritten In Rust For Performance
May 4, 2022 - I found also that odd until I read that they want to use ESLint to lint their own source code, and makes sense, to provide typing they will use JSDocs, I do no agree also with sticking with JS, but makes sense what they are trying to accomplish. ... Yeah I guess it makes sense if what they want to accomplish is people switching to Rome! ... I personally don’t care if is written in JS, TS or Rust, if is fast is good to me, also Rome has a good selling point that is to integrate the entire pipeline in one ecosystem, lint, formatter, lsp, bundler, test runner, etc so you would likely maintain one dependency instead of eslint, prettier, webpack, jest, testing-library, etc so I think even if eslint is fast I will most likely switch to Rome, the only concern is that Rome is VC founded, so it will be free in the future?
🌐
DEV Community
dev.to › cloudx › rslint-a-extremely-fast-javascript-linter-1lj6
RSLint - A extremely fast JavaScript linter - DEV Community
October 20, 2020 - ESLint is a de facto solution for linting JavaScript code. Also, C is the first thing that comes to o... Tagged with node, rust, productivity, deno.
🌐
egghead.io
egghead.io › q › eslint-and-rust-and-solidity
Learn Eslint, Rust and Solidity | egghead.io
rust · solidity · eslint · react · javascript · node · typescript · css · Instructors · Chris Biscardi · Pascal Precht · Noah Hein · Matías Hernández · Nik Graf · Erin Doyle · Free or pro · free · pro · Content type · lesson · course · Level Up Your Team ·
🌐
GitHub
github.com › eslint › eslint › issues › 16482
Complete rewrite of ESLint · Issue #16482 · eslint/eslint
September 29, 2022 - Right now we have both an ESLint class and a Linter class, which is confusing and they both do a lot more than just lint. I'd like to completely rethink the public API and provide both high-level APIs suitable for building things like StandardJS and the VSCode plugin and low-level APIs that adhere to the single-responsibility principal to make it possible to do more creative mixing and matching. Rust-based replacements.
Author   nzakas
🌐
Prolifics
prolifics.com › home › news › meet biome.js: why developers are swapping eslint/prettier for ai-enhanced rust tools
Level Up Your Dev Workflow With Biome.js Rust Tools
September 19, 2025 - Biome.js Rust tools are the AI-driven ESLint & Prettier alternative that boosts frontend development productivity with speed, simplicity, and precision.
🌐
RSLint
rslint.org
RSLint
RSLint does not require Node (opens new window) and has prebuilt binaries for Windows, Mac, and Linux but you are free to compile the project from source to any target supported by Rust.
🌐
Oxidation Compiler
oxc.rs › blog › 2026-03-11-oxlint-js-plugins-alpha
Oxlint JS Plugins Alpha
Oxlint already natively implements most of ESLint's built-in rules, rewritten in Rust, but not all rules are implemented yet.
🌐
egghead.io
egghead.io › q › eslint-and-rust-and-yarn
Learn Eslint, Rust and Yarn | egghead.io
rust · eslint · yarn · react · javascript · node · typescript · css · Instructors · Chris Biscardi · Pascal Precht · Nik Graf · Erin Doyle · Ian Jones · Andy Van Slaars · Free or pro · free · pro · Content type · lesson · course · Level Up Your Team ·
🌐
Reddit
reddit.com › r/rust › state of linting in rust?
r/rust on Reddit: State of linting in Rust?
May 28, 2021 -

What's the state of static analysis linting in rust?

What are some linting solutions you are using for your rust project?

I've always been big fan of eslint, with its plugin system, highly configurable rules sets, and excellent ide support. Eslint makes both importing, writing, and configuring static analysis lints pretty easy. Does clippy aim to function in a similar way to eslint, or is it headed in a different direction?

Now, obviously eslint has a lot of financial backing and javascript has a huge userbase, but I really feel like good linting solutions are a big plus for a language user group as a whole.

I believe I have the "default" clippy settings, so I get in-editor (VSCode) warnings for things like unused variables, naming conventions, etc, but I'd love more lints that helped with code smell. When looking over other people's rust projects, I rarely see anything in their code that reveals a custom linting solution.

Is having an extensive linting setup just not common for rust projects?

The only rust project I've been able to find that seems to have a "custom" linting setup is egui.

In the egui demo source files libs.rs , I see a long list of what appears to be linting flags:

#![warn(
    clippy::all,
    clippy::await_holding_lock,
    clippy::char_lit_as_u8,
    clippy::checked_conversions,
    clippy::dbg_macro,
    clippy::debug_assert_with_mut_call,
    clippy::doc_markdown,
    clippy::empty_enum,
    clippy::enum_glob_use,
    clippy::exit,
    clippy::expl_impl_clone_on_copy,
    clippy::explicit_deref_methods,
    clippy::explicit_into_iter_loop,
    clippy::fallible_impl_from,
    clippy::filter_map_next,
    clippy::float_cmp_const,
    clippy::fn_params_excessive_bools,
    clippy::if_let_mutex,
    clippy::imprecise_flops,
    clippy::inefficient_to_string,
    clippy::invalid_upcast_comparisons,
    clippy::large_types_passed_by_value,
    clippy::let_unit_value,
    clippy::linkedlist,
    clippy::lossy_float_literal,
    clippy::macro_use_imports,
    clippy::manual_ok_or,
    clippy::map_err_ignore,
    clippy::map_flatten,
    clippy::match_on_vec_items,
    clippy::match_same_arms,
    clippy::match_wildcard_for_single_variants,
    clippy::mem_forget,
    clippy::mismatched_target_os,
    clippy::missing_errors_doc,
    clippy::missing_safety_doc,
    clippy::mut_mut,
    clippy::mutex_integer,
    clippy::needless_borrow,
    clippy::needless_continue,
    clippy::needless_pass_by_value,
    clippy::option_option,
    clippy::path_buf_push_overwrite,
    clippy::ptr_as_ptr,
    clippy::pub_enum_variant_names,
    clippy::ref_option_ref,
    clippy::rest_pat_in_fully_bound_structs,
    clippy::same_functions_in_if_condition,
    clippy::string_add_assign,
    clippy::string_add,
    clippy::string_lit_as_bytes,
    clippy::string_to_string,
    clippy::todo,
    clippy::trait_duplication_in_bounds,
    clippy::unimplemented,
    clippy::unnested_or_patterns,
    clippy::unused_self,
    clippy::useless_transmute,
    clippy::verbose_file_reads,
    clippy::wrong_pub_self_convention,
    clippy::zero_sized_map_values,
    future_incompatible,
    nonstandard_style,
    rust_2018_idioms
)]

What exactly are these flags about?

Wouldn't it make more sense for there to be a linting config file, similar to a .eslintrc file rather than having to specify all of these lints in a lib.rs file or otherwise?