ESLint vs Oxlint: qual linter para o CI?
O Oxlint é um linter em Rust muito rápido; o ESLint é o padrão extensível com um vasto ecossistema de regras e plugins.
O ESLint é o linter consagrado para JavaScript/TypeScript, com milhares de regras e plugins da comunidade. O Oxlint (parte do projeto Oxc) é um linter baseado em Rust focado em velocidade, muitas vezes rodando ordens de magnitude mais rápido em bases de código grandes.
| ESLint | Oxlint | |
|---|---|---|
| Implementação | JavaScript | Rust |
| Velocidade | Mais lento (overhead de plugins) | Muito rápido |
| Ecossistema de regras / plugins | Enorme | Menor, em crescimento |
| Plugins personalizados | Maduro | Limitado / em evolução |
| Papel típico | Linter completo | Linter rápido de primeira passada |
No CI
O Oxlint pode lintar bases de código grandes drasticamente mais rápido que o ESLint, o que o torna atraente como um gate de CI rápido ou uma verificação de pre-commit. O ESLint ganha em cobertura: regras de frameworks, acessibilidade, ordenação de imports, regras type-aware e plugins personalizados. Um padrão comum é rodar o Oxlint em uma primeira passada rápida e manter o ESLint para as regras que o Oxlint ainda não cobre.
Esforço de migração
Audite os plugins e regras do ESLint que você tem habilitados antes de confiar apenas no Oxlint. Muitos times adotam o Oxlint de forma incremental ao lado do ESLint em vez de substituí-lo por completo, especialmente onde regras type-aware ou personalizadas importam.
O veredito
Quer um lint gate muito rápido e suas necessidades de regras são básicas ou já cobertas: Oxlint. Depende de um amplo ecossistema de plugins/regras type-aware: mantenha o ESLint (ou rode ambos). Verifique a cobertura de regras antes de abandonar o ESLint.