Команды Cloudflare, VoidZero и разработчик Макс Швенк объявили о создании проекта tsrs. Это инициатива по переносу компилятора TypeScript на язык программирования Rust. Проект развивается в рамках экосистемы инструментов Oxc и создается в тесном сотрудничестве с основной командой TypeScript, чтобы избежать расхождения в функциональности и логике работы языка.
Почему именно Rust?
Основная цель разработки — повышение скорости проверки типов и оптимизация использования оперативной памяти. Первые тесты показывают, что tsrs работает до 8 раз быстрее и потребляет примерно на 70% меньше памяти по сравнению с текущими версиями TypeScript. Важным преимуществом Rust является его отличная совместимость с WebAssembly. В отличие от Go, который требует включения собственного сборщика мусора при компиляции в Wasm, Rust позволяет создавать более компактные и эффективные решения, что критически важно для работы в браузерах, облачных средах вроде Cloudflare Workers или на IoT-устройствах.
Принципы развития проекта
- Сохранение контроля: Разработчики tsrs подчеркивают, что не планируют создавать форк языка. Дизайн и развитие TypeScript остаются в ведении основной команды.
- Синхронизация: Команда стремится строго следовать за оригинальной реализацией, чтобы обеспечить полную совместимость.
- Вклад в сообщество: Все найденные в процессе оптимизации улучшения будут передаваться в основной репозиторий TypeScript.
На текущем этапе проект находится в экспериментальной стадии, и разработчики уже работают над объединением усилий с другими инициативами, такими как tsc-rs, для создания единого инструмента, поддерживающего протокол языкового сервера (LSP). Cloudflare планирует интегрировать tsrs в свои инструменты, включая Oxlint, чтобы сделать процесс разработки более быстрым и доступным в любых условиях.
Источник: blog.cloudflare.com