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



