Cloudflare и VoidZero представили tsrs — порт TypeScript на Rust
Компания Cloudflare совместно с VoidZero и разработчиком Максом Швенком анонсировала открытый проект tsrs — порт компилятора TypeScript на языке Rust. Проект разрабатывается внутри инструментария Oxc при участии команды TypeScript и распространяется под лицензией Apache-2.0.
01Что случилось
Исходный код порта создан без ручной разработки: инженер Макс Швенк руководил работой автономных ИИ-агентов под управлением модели Claude Opus 5.5, задав в качестве спецификации 15 197 эталонных тестов соответствия оригинальному TypeScript. Сейчас Cloudflare объединяет tsrs с проектом tsc-rs от Тео Брауна в единый пакет, добавляя поддержку протокола языкового сервера (LSP).
tsrs запускается из командной строки через npm, pnpm или npx. По данным Cloudflare, при одинаковом числе рабочих потоков он выполняет проверку типов до восьми раз быстрее и потребляет примерно на 70% меньше оперативной памяти по сравнению с TypeScript 7.0. На монорепозитории Owner.com из 37 000 файлов время проверки снизилось с 80 секунд до 7 секунд.
Независимый бенчмарк разработчика Фрэнка Чу зафиксировал ускорение проверки в 5,3 раза и сокращение расхода памяти на 72% при байтово-идентичном сгенерированном коде и совпадении диагностических сообщений. При сравнении с бета-версией TypeScript 7.1 зафиксировано ускорение в 2,7 раза. Начиная с версии 0.20.0 доступен режим быстрой проверки, активируемый флагом --fast или переменной окружения TSRS_FAST=1; благодаря компиляции в WebAssembly через пакет @tsrs/wasm проверку типов можно выполнять в браузере, в среде Cloudflare Workers или на встраиваемых устройствах.
02Почему это важно
Релиз носит экспериментальный статус: в текущей версии отсутствует режим непрерывного отслеживания файлов watch, не поддерживаются CLI-флаги --init и --showConfig, а порядок вывода диагностических сообщений может отличаться от оригинала. При обнаружении ошибок типов tsrs завершает работу с кодом 2, тогда как tsc использует код 1, что может потребовать корректировки скриптов CI.
03Что дальше
Командам на TypeScript 5 или 6 перед переходом рекомендуется сначала обновиться с помощью официального порта tsgo на языке Go от Microsoft. Для поддержания совместимости ИИ-агенты ежедневно проверяют коммиты в оригинальном репозитории TypeScript, запускают тесты и формируют задачи на устранение расхождений.
Источники
- Хабр Новости habr.com