О насБлогКонтакты
Разработка18 апреля 2026 г. 4 мин

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшн

AunimedaAunimeda
📋 Содержание

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшн

JavaScript-runtime конкуренция достигла зрелости в 2026 году. Bun стабилен и реально быстрее по ряду параметров. Deno 2.0 отказался от своей идеологии «никакого npm». Node.js 22 запускает .ts файлы без транспиляции. Выбор стал содержательным.


Что нового в 2025-2026

Bun 1.0+ (production-стабилен с 2025):

  • Совместимость с npm: >95% пакетов работают
  • JavaScriptCore движок (Safari, не V8)
  • Встроенный bundler + test runner + package manager
  • Нативная поддержка TypeScript без конфигурации

Deno 2.0 (октябрь 2024):

  • Полная поддержка npm через npm: спецификатор
  • Node.js compatibility mode
  • Упрощённая модель разрешений
  • Workspaces

Node.js 22/23:

  • --experimental-strip-types — запуск .ts напрямую
  • V8 12.x с Maglev компилятором
  • Зрелый встроенный test runner

Бенчмарки HTTP-сервера

Минимальный сервер на идентичном железе (8 ядер, 16 ГБ):

Runtime Запросов/сек p99 latency Память
Bun 1.1 (нативный) ~240 000 1.2мс 48 МБ
Node.js 22 (uWebSockets) ~210 000 1.4мс 62 МБ
Node.js 22 (http) ~85 000 2.8мс 78 МБ
Deno 2.0 ~78 000 3.1мс 54 МБ
Node.js 20 (http) ~68 000 3.4мс 82 МБ

С реальными фреймворками:

Фреймворк Runtime Запросов/сек
Bun нативный Bun ~240k
Elysia.js Bun ~220k
Hono Bun ~210k
Hono Node.js ~130k
Fastify Node.js ~115k
Express.js Node.js ~58k

Для нагруженного API — Hono на Bun даёт лучший результат без компромисса по экосистеме.


Package manager: скорость установки

Операция npm pnpm Yarn bun
Холодная установка 28с 12с 14с 2.1с
С кэшем 18с 3.2с 4.1с 0.4с
disk space 340МБ 320МБ 330МБ 298МБ

bun install в 14 раз быстрее npm при наличии кэша. На CI/CD пайплайне это экономит 1-3 минуты каждого деплоя.


TypeScript: сравнение подходов

Node.js 22

# Работает без настройки для простых случаев
node --experimental-strip-types server.ts

Буквально удаляет типы. Не работает: enum, const enum, legacy декораторы. Для простых случаев подходит.

Bun

# Просто работает
bun run server.ts
bun run server.tsx

Встроенная транспиляция TypeScript. Enum, декораторы — всё работает. Самый удобный TypeScript-опыт из трёх.

Deno

deno run --check server.ts

TypeScript первого класса с самого начала. Strict mode по умолчанию. deno check для type checking без запуска.


Совместимость с экосистемой

Возможность Node.js Bun Deno
npm-пакеты ✅ нативно ✅ ~95% npm:
CommonJS ⚠️ частично
ESM ✅ (обязательно)
__dirname ❌ (import.meta.dirname)
Нативные .node ⚠️ ограниченно

Встроенный инструментарий

Инструмент Node.js Bun Deno
Test runner node --test bun test deno test
Bundler Нет bun build deno compile
TypeScript Эксперим. ✅ нативно ✅ нативно
Formatter Нет Нет deno fmt
Linter Нет Нет deno lint

Deno как all-in-one toolchain исключителен: единый инструмент вместо цепочки prettier + eslint + ts-node + jest.


Безопасность

Модель Node.js Bun Deno
Изоляция Нет Нет Да (разрешения)
# Deno: явные разрешения
deno run \
  --allow-net=api.kaspi.kz,api.freedompay.kz \
  --allow-read=/app/data \
  --allow-env=DATABASE_URL,API_KEY \
  payment-processor.ts

Особенно важно при работе с финансовыми API.


Практические рекомендации

Используйте Node.js когда:

  • Существующий production-проект — не трогайте без причины
  • Нативные addons: sharp, canvas, better-sqlite3
  • NestJS с большой командой и устоявшимися ops-практиками
  • Enterprise, требующий LTS-поддержки

Используйте Bun когда:

  • Новый API-сервис или микросервис
  • TypeScript-first разработка без лишней настройки
  • CI время критично — bun install экономит минуты
  • Работаете с Hono или Elysia

Используйте Deno когда:

  • Edge/serverless: Deno Deploy, Netlify Edge Functions
  • Скрипты и автоматизация с безопасностью
  • Финансовые операции с внешними API (permission model)
  • Нужен форматтер + линтер без конфигурации

Переход на Bun: что проверить

# Тест совместимости
bun install          # установить зависимости
bun test             # запустить тесты

# Что проверить:
# 1. Нативные addons — ищите bun-совместимые альтернативы
# 2. Специфические Node.js stream API
# 3. pkg.json "exports" edge cases
# 4. child_process vs Bun.spawn различия

Если тесты проходят — приложение скорее всего заработает на Bun.


Aunimeda строит высокопроизводительные backend-системы для казахстанских проектов. Обсудим архитектуру.

Смотрите также: Event-driven архитектура Node.js, OWASP безопасность для KZ

Читайте также

OWASP Top 10 2025: безопасность веб-приложений для казахстанского разработчикаaunimeda
Разработка

OWASP Top 10 2025: безопасность веб-приложений для казахстанского разработчика

OWASP Top 10 — это стандарт критических рисков безопасности. SQL-инъекции, сломанный контроль доступа, SSRF — каждый пункт с реальной атакой на ваш Node.js/Next.js код и конкретным исправлением. Актуально для проектов на казахстанском рынке.

Supabase vs Firebase 2026: сравнение для казахстанских стартапов и командaunimeda
Разработка

Supabase vs Firebase 2026: сравнение для казахстанских стартапов и команд

Supabase — open-source BaaS на PostgreSQL с возможностью самохостинга. Firebase — зрелая Google-платформа. PocketBase — один бинарник для MVP. Сравниваем по модели данных, цене, realtime и соответствию требованиям казахстанского рынка.

Чистая архитектура и DDD в Node.js: практическое руководство для productionaunimeda
Разработка

Чистая архитектура и DDD в Node.js: практическое руководство для production

Clean Architecture + Domain-Driven Design в Node.js TypeScript — без академизма. Use cases, Domain Entities, Repository Pattern, Aggregate Root. Бизнес-логика изолирована от инфраструктуры — тестируется без базы данных. Рабочий код для production.

Нужна IT-разработка для вашего бизнеса?

Разрабатываем сайты, мобильные приложения и AI-решения для бизнеса в Казахстане. Бесплатная консультация.

Получить консультацию Все статьи