Новый фреймворк для TypeScript побил рекорды производительности
Москва, 12 марта 2022 года — Сообщество разработчиков на TypeScript взбудоражено: новый open-source фреймворк TurboNode, созданный командой бывших инженеров V8 и Node.js, заявил о себе результатами, которые ставят под сомнение доминирование Go и Rust в сфере высоконагруженных систем. В официальном бенчмарке, опубликованном на GitHub, TurboNode показал 2,6 миллиона обработанных HTTP-запросов в секунду на стандартном «железе» (AMD EPYC 64 ядра, 128 ГБ RAM), что превышает показатели аналогичного приложения на Go (870 тыс. запросов/сек) в три раза.
Секрет производительности — в использовании JIT-компиляции на уровне байт-кода и новом аллокаторе памяти «ZeroGC», который, по заявлению разработчиков, сокращает время сборки мусора на 98% по сравнению с V8. «Мы не пытались переписать движок. Мы просто взяли стандартный TypeScript и заставили его работать с памятью так же эффективно, как C, но без потери безопасности типов», — прокомментировал в интервью нашему порталу Алексей Петров, тимлид проекта TurboNode.
Первые тесты от независимых экспертов подтверждают: в задачах, связанных с парсингом JSON и микросервисной маршрутизацией, TurboNode опережает Fastify (Node.js) в 4,2 раза, а Deno — в 2,8 раза. Однако скептики отмечают, что фреймворк пока сырой: в нём отсутствуют встроенные ORM и поддержка WebSockets, а документация существует только на английском. «Это мощный инструмент для REST API, но не ждите, что он заменит Express или NestJS завтра», — предупреждает Мария Соколова, архитектор из «Яндекс.Облака».
Релиз первой стабильной версии (v1.0) запланирован на июнь 2022 года. Уже сейчас проект набрал 8,7 тыс. звёзд на GitHub и получил грант от Cloudflare. Для Pythonista, привыкших к асинхронности через asyncio, TurboNode может стать интересным примером того, как TypeScript догоняет Python в удобстве, но уходит в отрыв по скорости. Полный код доступен по лицензии MIT.