Cloudflare et Void Zero travaillent avec Max Schwenk d'Owner.com sur tsrs, un portage en Rust du compilateur TypeScript. Le projet est développé en étroite collaboration avec l'équipe TypeScript et incubé dans le cadre de la chaîne d'outils du compilateur JavaScript Oxc. L'objectif affiché est d'aider les développeurs à passer moins de temps à attendre la vérification de leur code et plus de temps à construire, et d'apporter un TypeScript plus rapide et plus économe en mémoire à davantage d'environnements, y compris le navigateur.
L'équipe insiste sur le fait que tsrs n'est pas un fork. L'équipe TypeScript conservera le contrôle total de la conception et de l'orientation du langage. Un portage en Rust doit suivre de près les décisions de l'équipe TypeScript, car les fonctionnalités sont souvent prototypées pendant des années avant qu'une implémentation ne soit retenue, faute de quoi le portage risquerait de devenir incompatible.
Les premiers benchmarks montrent que tsrs est jusqu'à 8 fois plus rapide et utilise environ 70 % de mémoire en moins que TypeScript 7.0, avec le même nombre de workers de vérification de types. La prochaine version de TypeScript, la 7.1 bêta, est jusqu'à 2,5 fois plus rapide que la 7.0, et certaines de ces optimisations ont été remontées depuis tsrs. Par défaut, tsrs utilise une configuration adaptative qui consomme davantage de mémoire pour une vitesse encore plus élevée. Une version expérimentale peut être installée depuis npm.
Le portage TypeScript en Go a déjà apporté de grands gains, mais l'équipe estime que Rust offre des avantages supplémentaires. Le modèle mémoire de Rust permet une interaction plus simple entre un invité WebAssembly et son hôte, alors que la compilation de Go en Wasm impose d'embarquer son ramasse-miettes. Comme Cloudflare Workers exécute des systèmes de build et de déploiement dans des boucles serrées, une empreinte mémoire réduite compte beaucoup.
Source: Hacker News · Résumé par HeadlinesBriefing