Rust-инструментарий от создателя Zod, Колина Макдоннелла, который расширяет Node.js, а не заменяет его. TypeScript runner, скрипты в 24 раза быстрее, встроенный менеджер пакетов и управление версиями Node — всё в одном бинарнике.
В мире JavaScript-инструментария появился новый значимый игрок. Nub — универсальный Rust-инструментарий, созданный Колином Макдоннеллом (автором Zod и бывшим сотрудником Bun), — вышел 15 июня 2026 года и предлагает принципиально иной подход к улучшению опыта разработчика.
В то время как Bun и Deno пытаются заменить Node.js собственными рантаймами,
Nub делает нечто более продуманное: он расширяет Node.js. Это один
Rust-бинарник, который транслирует TypeScript через нативный oxc-аддон, запускает
скрипты в 24 раза быстрее pnpm run, устанавливает зависимости в 2.5 раза быстрее,
управляет версиями Node и обрабатывает .env — всё поверх стандартного
node, который у вас уже установлен.
В этом обзоре я расскажу, что делает Nub, как он работает под капотом, как он сравнивается с существующими инструментами (tsx, ts-node, npx) и стоит ли попробовать его в своём рабочем процессе.
Nub — это один Rust CLI-бинарник, объединяющий шесть основных инструментов для разработчика в одной команде:
nub index.ts: запуск TypeScript с полной поддержкой tsconfig, .env, JSX и декораторовnub run dev: выполнение скриптов из package.json ~в 24 раза быстрее pnpm runnubx prisma generate: запуск CLI из node_modules/.bin ~в 19 раз быстрее npxnub install: pnpm-совместимая установка зависимостей ~в 2.5 раза быстрееnub watch src/server.ts: отслеживание изменений на основе графа зависимостейnub node install 26: установка и управление версиями NodeСлоган проекта точно отражает суть: «расширяет Node, который у вас уже есть». Никакого нового рантайма, никакой привязки, никакой миграции.
Node.js — золотой стандарт серверного JavaScript. Он определяет стандартную библиотеку, на которой держится вся экосистема, и задаёт стандарты стабильности и надёжности. Но эта стабильность имеет свою цену: новые возможности для разработчиков появляются медленно.
За годы сообщество собрало вокруг Node.js разрозненный набор инструментов:
tsx или ts-node для выполнения TypeScriptdotenv для загрузки переменных окруженияtsconfig-paths для разрешения алиасов путейnodemon для отслеживания файлов и перезапускаnpx или pnpm exec для запуска CLI-утилитnpm run или pnpm run для выполнения скриптовnvm, fnmBun и Deno доказали огромный спрос на интегрированный опыт. Но спустя шесть лет после Deno 1.0 и два с половиной года после Bun 1.0 ни один из них серьёзно не повлиял на доминирование Node.js в продакшене. Ни тот, ни другой не являются первоклассными целями на AWS, GCP или Azure, а их совместимость с Node.js всё ещё значительно отстаёт — Nub проходит 98.8% тестов совместимости Deno против 77.4% у Deno и 40.5% у Bun.
Nub исходит из того, что расширение лучше замены. Ваша производственная инфраструктура работает на Node.js, и это не изменится в ближайшее время. Так зачем с этим бороться?
Установить Nub просто. На macOS и Linux:
curl -fsSL https://nubjs.com/install.sh | bash
На Windows или через npm:
npm install -g --ignore-scripts=false @nubjs/nub
После установки можно проверить версию:
nub --version
nub <file> — TypeScript-ориентированный запуск файлов
Основная команда запускает файлы. Это полноценная замена node с теми же
флагами, теми же аргументами и тем же поведением — плюс полная поддержка TypeScript:
# Запуск TypeScript файла
nub index.ts
# С разрешением путей из tsconfig
nub src/server.ts
# С перезапуском при изменениях
nub watch src/server.ts
# Со стандартными флагами Node
nub --inspect src/server.ts
Под капотом Nub транслирует каждый файл через oxc — Rust-инструментарий
для JavaScript/TypeScript, скомпилированный в нативный аддон Node. Транслированный код
выполняется на стандартном node. Это означает:
module.registerHooks().env, .env.local, .env.[NODE_ENV] с подстановкой переменных через ${VAR}using для управления ресурсамиnub run <script> — запуск скриптов в 24 раза быстрее
При выполнении npm run dev или pnpm run dev запускается Node.js
для обработки CLI менеджера пакетов, который затем порождает ещё один процесс. Nub
устраняет этот оверхед, читая package.json напрямую через своё Rust-ядро:
# Вместо: pnpm run dev
nub run dev
# Вместо: yarn build
nub run build
# Передача аргументов скрипту
nub run test -- --coverage
Результат: в 24 раза быстрее pnpm run при холодном старте. Выигрыш достигается за счёт устранения времени запуска интерпретатора Node.js для команд инструментария.
nubx <bin> — запуск утилит в 19 раз быстрее
npx печально известен своей медлительностью — он проверяет обновления,
загружает пакеты и запускает Node для каждого вызова. nubx делает то же
без лишних затрат:
# Вместо: npx prisma generate
nubx prisma generate
# Вместо: pnpm exec eslint
nubx eslint src/
# Несколько CLI
nubx jest,typescript tsc --noEmit
nub install — менеджер пакетовNub также может устанавливать зависимости. Он совместим с pnpm и уважает ваш существующий lock-файл:
# Установка зависимостей
nub install
# Добавление зависимости
nub install add zod
# Добавление dev-зависимости
nub install add -D typescript
Бенчмарки показывают, что nub install работает ~в 2.5 раза
быстрее pnpm install.
nub watch — отслеживание изменений по графу зависимостей
В отличие от nodemon, который перезапускается при любом изменении
файла, Nub отслеживает реальный граф зависимостей приложения:
# Слежение с перезапуском при изменениях в зависимостях
nub watch src/server.ts
# Несколько точек входа
nub watch src/api.ts src/worker.ts
Перезапуск происходит только при изменении импортированных файлов, что исключает лишние перезапуски при редактировании несвязанных файлов.
nub node — встроенный менеджер версий NodeБольше не нужно жонглировать nvm, fnm или volta:
# Установка определённой версии Node
nub node install 26
# Список установленных версий
nub node list
# Установка версии по умолчанию
nub node use 26.3.1
Архитектура Nub — ключевое отличие от альтернатив. В отличие от Bun и Deno, которые реализуют API Node.js с нуля (и неизбежно допускают ошибки в некоторых из них), Nub использует более простой подход:
| Аспект | Nub | Bun / Deno |
|---|---|---|
| Рантайм | Стандартный Node.js Node | Собственный рантайм (Zig / Rust+V8) |
| TypeScript | oxc нативный аддон → транспиляция в памяти | Встроенный транспилятор (удаление типов или SWC) |
| Совместимость с Node | 98.8% (стандартный Node) | 77.4% (Deno) / 40.5% (Bun) |
| Облачная поддержка | Все провайдеры (это Node) | AWS, GCP, Azure (ограниченно) |
| Привязка | Нулевая — файлы работают и на обычном Node | Высокая — runtime-специфичные API |
| Оверхед запуска | Нулевой для инструментов (Rust CLI) | Низкий (собственный рантайм) |
Это означает, что рантайм под капотом — это Node. Ваш TypeScript-код
транслируется oxc (Rust → нативный аддон), загружается через
module.registerHooks() и выполняется тем же node, который
работает в вашем продакшене. Никаких сюрпризов, никаких проблем с совместимостью,
никаких сложностей с деплоем.
И Nub, и tsx позволяют запускать TypeScript-файлы: nub index.ts или
tsx index.ts. Разница в том, что Nub построен на oxc (Rust), а tsx
использует esbuild (Go). Оба быстры, но Nub добавляет загрузку .env, разрешение
путей tsconfig, импорт YAML/TOML и поддержку декораторов «из коробки» — tsx
занимается только транспиляцией.
dotenv требует добавления import 'dotenv/config' в начале
входного файла. Nub загружает .env автоматически до запуска Node, с поддержкой
подстановки переменных (${VAR} как в Vite и Next.js).
Nub включает nub node install, так что отдельный менеджер версий не
нужен. Для большинства проектов встроенное управление Node упрощает настройку.
Nub вышел 15 июня 2026 года. Как и любой v1.0 проект, у него есть особенности:
tsc --noEmit.node.Для локальной разработки, выполнения скриптов в CI и инструментария монорепозиториев Nub уже сейчас является убедительной альтернативой разрозненному набору инструментов.
Если ваш ежедневный рабочий процесс с Node.js включает комбинацию tsx, dotenv, tsconfig-paths, nodemon, npx, pnpm run и nvm — Nub определённо заслуживает внимания. Он устраняет пять отдельных зависимостей из вашей настройки и даёт ощутимый прирост производительности для типовых операций.
Ключевой момент: Nub не создаёт привязки. Каждый файл, запущенный
через Nub, можно запустить и обычным node после компиляции. Каждый скрипт
из package.json работает как с Nub, так и без него. Нет нового рантайма,
нет нового API, нет затрат на миграцию. Вы можете попробовать Nub сегодня в одном
проекте и отказаться от него в любой момент.
Как full-stack разработчик, активно работающий с экосистемой Node.js — включая React, Vue, Angular и современные бэкенд-инструменты, — я слежу за дебатами «Node.js vs альтернативные рантаймы» уже несколько лет. Nub — первый подход, который вызывает у меня оптимизм: лучшее окружение для разработки без жертвы всем, что делает Node.js надёжным в продакшене.
Нужно веб-приложение на Node.js? Я создаю production-ready приложения с правильными инструментами под ваши задачи — без привязки и лишнего хайпа.