Tous les articles

tsrs : un portage de TypeScript en Rust, et ce que ça change pour vous

TypeScript · 4 min de lecture ·

Le 20 octobre 2026, Cloudflare et VoidZero ont annoncé tsrs, un portage du compilateur TypeScript en Rust, mené avec Max Schwenk d'Owner.com et incubé dans la chaîne d'outils Oxc. En bref, pour un développeur au quotidien : c'est expérimental, ça ne modifie pas le langage TypeScript, et vous n'avez rien à changer cette semaine. Le détail est plus intéressant, parce qu'il en dit long sur l'avenir de la vérification de types.

Un portage, pas un fork

Les auteurs insistent : ils écrivent qu'ils ne forkent pas TypeScript et que l'équipe TypeScript doit garder le contrôle total de la conception du langage. tsrs suit les décisions de l'équipe au lieu de prendre les siennes, et l'article explique pourquoi : un portage qui s'éloigne de l'original finit, selon eux, par se désagréger et devenir incompatible.

C'est important pour votre code. Un fork pourrait, avec le temps, accepter des programmes que le compilateur officiel rejette, ou l'inverse. Un portage fidèle vise les mêmes réponses, simplement plus vite. Les auteurs reconnaissent des écarts actuels, par exemple l'ordre d'affichage des diagnostics, et veulent les réduire au minimum avant une version stable.

Ce que disent les benchmarks

Ce sont les chiffres de Cloudflare, pas les miens, et je ne les ai pas reproduits. Selon l'article, tsrs est jusqu'à 8 fois plus rapide et consomme environ 70 % de mémoire en moins que TypeScript 7.0, à nombre égal de workers de vérification. Le même article indique que TypeScript 7.1 beta est lui-même jusqu'à 2,5 fois plus rapide que la 7.0, et qu'une partie de ces gains vient de tsrs.

vitesse annoncée, mêmes workers TS 7.0 1x TS 7.1 beta jusqu'à 2,5x tsrs jusqu'à 8x benchmark des auteurs, non mesuré ici
La longueur des barres suit les multiples annoncés. La référence est TypeScript 7.0, qui est déjà le portage en Go.

Deux détails gardent les choses honnêtes. D'abord, les auteurs rappellent que les portages publient souvent de gros chiffres en utilisant des machines plus puissantes et des options non par défaut, et disent avoir travaillé avec l'équipe TypeScript pour comparer la même configuration. Ensuite, tsrs est livré par défaut avec une configuration adaptative qui consomme plus de mémoire pour aller encore plus vite : ce que vous installez n'est donc pas le réglage derrière le chiffre de mémoire.

Pourquoi Rust, alors que Go l'a déjà rendu 10 fois plus rapide ?

L'article pose lui-même la question. Le portage officiel de TypeScript en Go a déjà rendu le compilateur 10 fois plus rapide que la version écrite en TypeScript. La réponse des auteurs, c'est WebAssembly. Un programme Go compilé en Wasm doit embarquer le ramasse-miettes de Go. Rust n'a pas de ramasse-miettes à livrer, et son modèle mémoire rend simples les échanges de mémoire entre un module Wasm et son hôte.

Go compilé en Wasm compilateur ramasse-miettes Rust compilé en Wasm compilateur rien de plus à livrer empreinte réduite dans un navigateur ou un Worker
L'argument pour Rust porte sur l'endroit où le compilateur peut tourner, pas seulement sur sa vitesse.

L'intérêt de Cloudflare est clair : l'entreprise fait tourner des systèmes de build sur Workers, où une faible empreinte mémoire se rentabilise vite. C'est aussi ce qui pourrait permettre de faire tourner une chaîne de développement complète dans un onglet de navigateur, ou sur un appareil embarqué, sans serveur derrière.

Ce que ça change pour un projet normal aujourd'hui

Très peu, et c'est très bien. tsrs est une version expérimentale. Si vous êtes curieux, l'article donne exactement deux commandes :

npm install tsrs
npx tsrs

En règle générale, je le traiterais comme un second avis, pas comme un remplaçant. Lancez-le à côté de votre vérification tsc habituelle sur une branche, comparez les erreurs et notez le temps. N'en faites pas le contrôle qui bloque un merge tant que ses auteurs eux-mêmes disent que la sortie diffère encore par endroits.

C'est en CI que vous le sentirez en premier. La vérification de types est souvent l'une des étapes les plus lentes d'un pipeline TypeScript, et chaque compilateur plus rapide la raccourcit. Le gain le moins cher aujourd'hui n'est sans doute pas tsrs, mais le passage à la dernière version officielle de TypeScript, puisque l'article attribue à la 7.1 beta son propre gain important.

tsrs suit TypeScript au lieu de lui faire concurrence. Essayez-le à côté de tsc, gardez le compilateur officiel comme contrôle, et mettez d'abord TypeScript à jour.

Prochaine étape : mesurez la durée actuelle de votre vérification de types en CI, pour avoir un vrai chiffre de comparaison quand arrivera une version stable de tsrs ou la prochaine version de TypeScript. Source : blog de Cloudflare, Introducing tsrs: A port of TypeScript to Rust.

Ce que disent les lecteurs

  1. Pas encore de mot. Le premier est toujours le plus courageux.
Vous construisez quelque chose du genre ? Je peux vous aider. Écrivez-moi sur WhatsApp