- Oxlint, un outil de lint pour JavaScript/TypeScript développé en Rust, est officiellement lancé en version 1.0
- Des performances 50 à 100 fois supérieures à ESLint, la prise en charge de plus de 500 règles ESLint, et des cas d’usage réels dans de grandes entreprises (Shopify, Airbnb, Mercedes-Benz, etc.)
- Utilisable immédiatement sans configuration, avec prise en charge de la portabilité et de l’utilisation conjointe avec les configurations ESLint existantes
- Intégration avec les principaux éditeurs (VSCode, IntelliJ, Zed, etc.) et fourniture d’un LSP, avec des messages de diagnostic d’erreur détaillés et visuels
- La feuille de route à venir a également été dévoilée, avec notamment des règles personnalisées, des optimisations de performances et des réglages plus fins
Principaux points d’Oxlint 1.0
Performances et déploiement à grande échelle
- Implémenté en Rust, il permet de linter des dizaines de milliers de fichiers à très grande vitesse en exécution parallèle
- Exemples : lint de 126�000 fichiers chez Airbnb en 7 secondes ; chez Mercedes-Benz, gain de vitesse de 71 à 97 %
- Sur le plus grand dépôt testé, analyse de 265�000 fichiers et 101 règles en seulement 22,5 secondes
Utilisation immédiate & adoption facile
- Une fois installé, il peut être exécuté immédiatement sans configuration
- Utilisable directement avec
npx oxlint@latest ou via pnpm/yarn/bun/deno
- Prise en charge d’une configuration personnalisée
.oxlintrc.json pour les grands projets et les environnements d’équipe
- Basée sur le format flat config d’ESLint v8, donc familière
- Migration de la configuration ESLint existante avec
oxlint-migrate, et possibilité de désactiver les règles en doublon avec eslint-plugin-oxlint
- Approche recommandée : faire tourner oxlint et eslint ensemble pour obtenir un feedback plus rapide
Prise en charge étendue des règles
- Prise en charge de l’ensemble des règles ESLint ainsi que de nombreuses règles issues des plugins typescript-eslint, unicorn, jsdoc, react, jest et import
- Inclut aussi des règles propres à Oxlint : bad comparison sequence, const comparisons, etc.
Configuration flexible
- Prise en charge de configurations imbriquées par dossier, d’overrides par glob et de l’extension de configurations partagées
- Permet de maintenir des standards cohérents de qualité de code selon les équipes
Intégration éditeur
- Extensions disponibles pour VSCode, IntelliJ/WebStorm, Zed, etc., avec prise en charge du LSP
- Diagnostic immédiat des erreurs et suggestions de correction dans différents IDE
Messages de diagnostic
- Au-delà d’une simple description d’erreur, Oxlint fournit une visualisation des causes et des pistes de résolution
Benchmark
| Outil |
Temps d’exécution |
| oxlint (multithread) |
615ms |
| oxlint (single-thread) |
1,8 s |
| eslint |
33,5 s |
Feuille de route
- Prise en charge prévue des règles personnalisées basées sur JavaScript
- Ajout continu d’optimisations de performances et de réglages plus fins par glob dans le style d’ESLint v9
4 commentaires
Rust, c’est le cheat code pour améliorer les performances ?
On dirait que la prise en charge de Vue ou de NestJS n’est pas encore totalement aboutie.
https://github.com/oxc-project/oxc/issues/481
Oxlint - un linter JS 50 à 100 fois plus rapide qu’ESLint