Содержание
У нас есть SSR-сервис для перегона реакт-компонентов в HTML. Он написан на ноде.
Ради интереса решили попробовать завести его на Deno и на Bun: вдруг они покажут себя лучше.
В первом подходе начали с малого: просто завели текущий код на альтернативных рантаймах. Мы не заменяли пакеты ноды на пакеты его собратьев и ничего не адаптировали специально под конкретный рантайм.
Просто установили текущие зависимости через Deno и Bun (благо оба умеют работать как с пакетами из npm, так и с пакетами ноды). Попробовали запустить.
Deno
С толчка не завёлся. Кидал ошибки. Их было несколько, и они последовательно всплывали после починки предыдущей. В конце концов завёлся.
Bun
Сразу завёлся. Но в некоторых кейсах всплывала ошибка, которую не сразу заметили. Поправили. В итоге тоже заработал.
Сравнение на проде
У нас есть несколько инстансов SSR-сервиса. Выбрали из них три для эксперимента:
- первый — остался на ноде;
- второй — на Deno;
- третий — на Bun.
Все три инстанса работают на одинаковом железе, и нагрузка на них идёт одинаковая.
Результаты

Нода и Deno оказались в нашем кейсе примерно равны по скорости ответа. Deno даже на несколько ms был быстрее.
Bun оказался в два раза медленней своих конкурентов.
Что дальше
Вероятно, попробуем адаптировать код под каждый рантайм, чтобы было честнее. Возможно, результат изменится, так как и Deno, и Bun будут работать не через адаптеры под пакеты ноды.