История Ивана Капкова: эмиграция, внутренний кризис и трагический финал «Ставка на любовь»: кто участвовал в первом выпуске третьего сезона и какая пара ушла Филипп Киркоров станцевал на столе для диджея на презентации клипа «Луиза» Александр Цыпкин представил «Файл Надежды» — историю любви в эпоху нейросетей Team Spirit сохранила первое место в рейтинге HLTV Девушка Kizaru заявила о фиктивном браке рэпера и насилии Модель OnlyFans рассказала о трех поклонниках с татуировками в ее честь Россияне поддержали право фотографировать товары в магазинах, но снимают их в основном ситуативно ZCode раздаёт 500 млн токенов для моделей GLM-5.3 Британский актер погиб после падения в вольер с тиграми Филипп Киркоров представил клип «Луиза», снятый в Каппадокии Исследование AWG: россияне возвращаются в интернет-магазины не только из-за цены BrandSecurity: число нарушений прав на бренды выросло на 56,9% Том Уэллинг стал героем вирусного обсуждения после публикации фото из отеля В аэропорту Шереметьево у турагента украли рюкзак в бизнес-зале Сбербанк повысил ставку по накопительному счету до 14,5% годовых Пять способов сделать макияж губ в коричневой гамме Ума Турман, Эшли Грэм и Джулия Фокс на Room to Grow Gala 2026 Бонни Райт стала мамой во второй раз Бывший муж Дженнифер Мейер провёл её свадьбу на Гавайях
Лента новостей
Технологии

Cloudflare представила экспериментальный Rust-компилятор TypeScript tsrs

tsrs проверяет типы до восьми раз быстрее TypeScript 7.0 и потребляет примерно на 70% меньше памяти, но пока сохраняет экспериментальный статус.

Cloudflare представила экспериментальный Rust-компилятор TypeScript tsrs
Фото: Хабр

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.

Источник