Nub — универсальный инструментарий для Node.js
Технический обзор · 23 июня 2026

Nub — универсальный
инструментарий для Node.js

Rust-инструментарий от создателя Zod, Колина Макдоннелла, который расширяет Node.js, а не заменяет его. TypeScript runner, скрипты в 24 раза быстрее, встроенный менеджер пакетов и управление версиями Node — всё в одном бинарнике.

Олег Максимов 23 июня 2026 14 мин чтения

Введение

В мире 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?

Nub — это один Rust CLI-бинарник, объединяющий шесть основных инструментов для разработчика в одной команде:

Слоган проекта точно отражает суть: «расширяет Node, который у вас уже есть». Никакого нового рантайма, никакой привязки, никакой миграции.

Почему Nub существует: решаемая проблема

Node.js — золотой стандарт серверного JavaScript. Он определяет стандартную библиотеку, на которой держится вся экосистема, и задаёт стандарты стабильности и надёжности. Но эта стабильность имеет свою цену: новые возможности для разработчиков появляются медленно.

За годы сообщество собрало вокруг Node.js разрозненный набор инструментов:

Bun и 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

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. Это означает:

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 работает под капотом

Архитектура 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 vs существующий инструментарий

vs tsx (TypeScript Execute)

И Nub, и tsx позволяют запускать TypeScript-файлы: nub index.ts или tsx index.ts. Разница в том, что Nub построен на oxc (Rust), а tsx использует esbuild (Go). Оба быстры, но Nub добавляет загрузку .env, разрешение путей tsconfig, импорт YAML/TOML и поддержку декораторов «из коробки» — tsx занимается только транспиляцией.

vs dotenv

dotenv требует добавления import 'dotenv/config' в начале входного файла. Nub загружает .env автоматически до запуска Node, с поддержкой подстановки переменных (${VAR} как в Vite и Next.js).

vs nvm / fnm (менеджеры версий Node)

Nub включает nub node install, так что отдельный менеджер версий не нужен. Для большинства проектов встроенное управление Node упрощает настройку.

Готов ли Nub к продакшену?

Nub вышел 15 июня 2026 года. Как и любой v1.0 проект, у него есть особенности:

Для локальной разработки, выполнения скриптов в CI и инструментария монорепозиториев Nub уже сейчас является убедительной альтернативой разрозненному набору инструментов.

FAQ

Что такое Nub?
Nub — это универсальный JavaScript-инструментарий, который расширяет Node.js, а не заменяет его. Это один Rust-бинарник, объединяющий: запуск TypeScript-файлов, быстрый запуск скриптов (nub run), запуск CLI-утилит (nubx), pnpm-совместимый менеджер пакетов, автоматическую загрузку .env, разрешение путей tsconfig, менеджер версий Node и встроенный режим слежения за файлами.
Кто создал Nub?
Nub создал Colin McDonnell — автор Zod, самой популярной библиотеки валидации схем для TypeScript. Ранее Колин работал в Bun на позиции developer relations engineer, что дало ему глубокое понимание как экосистемы TypeScript, так и ограничений альтернативных рантаймов. Подробнее о последних разработках Zod читайте в моём обзоре Zod Compiler.
Чем Nub отличается от Bun или Deno?
Bun и Deno — это рантаймы, созданные с нуля, которые пытаются полностью заменить Node.js. Nub использует противоположный подход — он расширяет Node.js, транслируя TypeScript через oxc (Rust-нативный аддон) на стандартном Node. В тесте совместимости Deno Nub проходит 98.8% тестов Node против 77.4% у Deno и 40.5% у Bun. Nub работает на любом облачном провайдере, поддерживающем Node.js — потому что под капотом это и есть Node.js.
Насколько Nub быстрее npm-скриптов и npx?
Согласно опубликованным бенчмаркам, nub run примерно в 24 раза быстрее pnpm run, nubx (запуск утилит) примерно в 19 раз быстрее npx, а nub install — примерно в 2.5 раза быстрее pnpm install. Такое ускорение достигается благодаря Rust-ядру Nub, которое устраняет задержки запуска интерпретатора Node для команд инструментария.
Заменяет ли Nub tsx, ts-node, dotenv и nodemon?
Да — в этом и заключается основная идея. Nub заменяет все эти инструменты одним бинарником. Команда nub index.ts обрабатывает TypeScript через oxc (заменяя tsx/ts-node), автоматически загружает .env файлы (заменяя dotenv), разрешает пути из tsconfig (заменяя tsconfig-paths), а nub watch отслеживает изменения файлов (заменяя nodemon).
Можно ли использовать Nub вместе с текущим менеджером пакетов?
Да. Nub полностью совместим с существующими lock-файлами pnpm, yarn и npm. Команда nub install работает с вашим lock-файлом, а nub run может запускать скрипты из package.json любого менеджера пакетов. Nub не требует миграции проекта — он работает поверх вашей текущей настройки.
Какие версии Node.js поддерживает Nub?
Nub работает на Node.js 18 LTS и новее. Он транслирует TypeScript через нативный oxc-аддон и выполняет код на стандартном node, который уже используется в вашем проекте. Подробнее о последних возможностях Node.js 26 — нативном TypeScript и SQLite — читайте в моём обзоре Node.js 26.

Стоит ли попробовать 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 приложения с правильными инструментами под ваши задачи — без привязки и лишнего хайпа.