Aller au contenu

Le média des artisans du web mercredi 14 octobre 2026

Outils

Bun 1.4.3 intègre bun check, un vérificateur TypeScript jusqu’à 6,4 fois plus rapide que tsc

Bun 1.4.3 ajoute bun check, un vérificateur de types TypeScript intégré au runtime, jusqu'à 6,4 fois plus rapide que tsc selon les mesures publiées par l'équipe. La version corrige aussi une régression qui faisait tourner les serveurs au ralenti même au repos.

Bun 1.4.3, publiée le 10 octobre 2026, ajoute bun check, un vérificateur de types TypeScript construit dans le runtime. Port du compilateur typescript-go, il affiche les mêmes erreurs que tsc sans générer de JavaScript, en s’appuyant sur tous les cœurs du processeur. La version corrige également une régression qui maintenait un minuteur actif en permanence sur les serveurs inactifs, avec une réduction de 67 à 89 % de la consommation CPU au repos.

Un vérificateur de types sans dépendance à TypeScript

bun check lit directement le tsconfig.json du projet et ne requiert pas le paquet typescript. Il ne remplace pas le serveur de langage de l’éditeur, qui continue de s’appuyer sur TypeScript, mais s’exécute en ligne de commande ou intégré à d’autres commandes Bun.

bun check
bun check --no-pretty           # sortie brute, utile pour un diff
bun run --check dev             # vérifie les types avant de lancer le script
bun test --check                # vérifie les fichiers de test et leurs imports
bun build --check ./src/index.ts --outdir out

La commande s’appuie sur l’éditeur pour l’expérience en temps réel, et sur son propre moteur pour la vérification en ligne de commande, intégrable dans un script de build ou une étape de CI sans installer le compilateur officiel.

Des écarts de performance mesurés sur des projets réels

Sur un Mac Apple Silicon à 16 cœurs, l’équipe Bun a comparé bun check à tsc 7.0.2 sur plusieurs bases de code open source.

ProjetFichiersbun checktsc 7.0.2Gain
VS Code (src)9 7951,24 s5,98 s4,8x
mikro-orm2 8831,20 s5,97 s5,0x
Next.js (packages/next)2 8810,28 s1,82 s6,4x
Playwright7060,15 s0,64 s4,2x

Sur le projet VS Code, la mémoire consommée descend à 2,14 Go contre 7,97 Go pour tsc, soit 3,7 fois moins. Un second banc d’essai sous Linux x64, avec 64 threads et une moyenne sur 20 exécutions, confirme l’écart sur les 10 947 fichiers de VS Code : 1,75 s pour bun check contre 5,88 s pour tsc 7 configuré avec 16 processus de vérification.

La question de la conformité

Un vérificateur plus rapide n’a d’intérêt que s’il rend le même verdict que l’original. L’équipe Bun affirme passer 100 % de la suite de conformité de TypeScript 7.0.2, soit 51 210 tests, et avoir comparé sa sortie à celle de tsc sur 72 projets open source volontairement mal configurés.

Bun affirme avoir comparé sa sortie à celle de tsc sur 286 267 erreurs détectées à travers 72 projets, pour un seul écart identifié.

Ces chiffres proviennent de l’équipe Bun elle-même, pas d’un audit indépendant. L’outillage fourni un protocole pour reproduire la comparaison sur un projet donné : lancer tsc et bun check en parallèle puis comparer les sorties avec diff, avant de confier un éventuel écart à l’équipe sous forme de ticket.

bunx -p [email protected] tsc --noEmit --pretty false > tsc.txt
bun check --no-pretty > bun.txt
diff tsc.txt bun.txt

Un serveur qui dort vraiment au repos

La seconde correction notable touche les applications HTTP de longue durée. Depuis la version 1.4.2, une requête occasionnelle laissait tourner un minuteur de ramasse-miettes toutes les secondes, même sans trafic. La version 1.4.3 ne réveille plus le processus que pour un travail réel, par exemple un contrôle de santé toutes les dix secondes.

Frameworkv1.4.0v1.4.2v1.4.3
Express308 ms282 ms57 ms
Elysia280 ms197 ms21 ms
Hono263 ms195 ms21 ms
Next.js SSR628 ms815 ms268 ms

Ces mesures de CPU cumulé, prises sur deux minutes d’inactivité avec un contrôle de santé toutes les dix secondes, concernent surtout les déploiements facturés à l’usage, où un processus qui tourne sans raison a un coût direct. La mémoire au repos baisse elle aussi de 6 à 11 % par rapport à la version précédente.

Le reste de la livraison

La version ajoute aussi Bun.FetchSession, qui isole TLS, proxy et connexions persistantes par groupe de requêtes, et une classe expérimentale Bun.ModuleGraph capable de faire tourner plusieurs instances d’une même application dans un seul processus. Plusieurs correctifs de sécurité complètent la livraison, dont un durcissement TLS référencé sous CVE-2026-48618.

Pour une comparaison plus large des gestionnaires de paquets et runtimes JavaScript, voir le comparatif npm, pnpm, Bun et Deno. Sur le volet strictement compilation TypeScript, le passage au compilateur écrit en Go avait déjà été couvert dans l’article sur TypeScript 7 et son compilateur Go, dont tsc 7.0.2 sert ici de référence de comparaison.

Ce qu’il faut retenir

Bun 1.4.3 fait de la vérification de types un argument de vitesse plutôt qu’un simple service rendu par l’écosystème TypeScript. Les gains annoncés, de 3 à 6,4 fois selon les projets, concernent la vérification en ligne de commande et de CI, pas l’expérience dans l’éditeur, qui reste assurée par le serveur de langage TypeScript habituel. La correction du minuteur au repos est, pour les équipes qui font tourner des services Bun en production facturée à l’usage, au moins aussi significative que le nouveau vérificateur.

Le chiffre qui retient l’attention n’est pas le 6,4x sur Next.js, c’est la baisse de 89 % de CPU au repos sur Elysia. J’ai vu plus d’une facture d’hébergement gonflée par un processus Node qui tournait pour rien entre deux requêtes qu’un build ralenti par un vérificateur de types trop lent. Reste à voir si bun check tient la distance sur des bases de code moins propres que celles choisies pour la démonstration, avec des configurations tsconfig héritage et des types generics récursifs qui font dérailler plus d’un outil tiers. En attendant, le script de diff fourni par l’équipe est la bonne façon de vérifier chez soi avant de retirer tsc d’une chaîne de CI. — Simon Janvier

Pour aller plus loin : le billet officiel de l’équipe Bun sur la version 1.4.3.

Partager LinkedIn Bluesky Hacker News E-mail

À lire aussi