L'équipe derrière Knip, l'outil open source très utilisé pour détecter les fichiers, dépendances et exports inutilisés dans les projets JavaScript et TypeScript, a publié la version 6 — et le chiffre principal ne laisse pas indifférent : 2 à 4 fois plus rapide sur toute la ligne.
Le changement clé est le remplacement complet du backend TypeScript par oxc-parser, le parser écrit en Rust du projet Oxc.
Pourquoi le backend TypeScript avait atteint ses limites
Knip parse chaque fichier une seule fois, mais l'ancien moteur basé sur TypeScript trainait la complexité d'un programme complet et d'un vérificateur de types pour une analyse statique qui n'en avait pas besoin. Cette configuration était pensée pour les IDEs et serveurs de langage, pas pour un analyseur qui ne fait qu'une passe.
« Le backend TypeScript rendait l'ensemble de la configuration plus difficile et plus lent qu'il n'aurait dû l'être, surtout pour les gros monorepos. » — Lars Kappert, annonce de la v6
L'équipe TypeScript est aussi en train de réécrire le compilateur en Go pour la v7 (preview disclosed en mars 2026). Cette réécriture aurait cassé les API LanguageService sur lesquelles Knip comptait pour ses fonctionnalités les plus niches.
Les chiffres
| Projet | v5.88.0 | v6.0.0 | Gain |
|---|---|---|---|
| Astro | 4,0s | 2,0s | 2,0x |
| TanStack Query | 3,8s | 1,7s | 2,2x |
| Rolldown | 3,7s | 1,7s | 2,2x |
| Sentry | 11,0s | 4,0s | 2,8x |
| TypeScript (microsoft/TypeScript) | 3,7s | 0,9s | 4,1x |
Le parser Rust parcourt le dépôt TypeScript de Microsoft en moins d'une seconde.
Changements importants
- Node.js v20.19.0+ requis — v18 n'est plus supporté
- Type d'issue classMembers supprimé — plus viable sans l'API LanguageService de TypeScript
- Les flags
--include-libset--isolate-workspacessont supprimés (comportement par défaut) --experimental-tagsrenommé en--tags
Mise à jour
npm install -D knip@latest
La documentation complète est sur le site de Knip.