Nub, полнофункциональный набор инструментов для Node.js на базе Rust

Nub, это набор утилит, написанный на Rust, который расширяет базовый Node.js, добавляя функции из Bun/Deno без замены рантайма. Основные компоненты: файловый рантайм с поддержкой TypeScript/JSX без build-шагов, runner для скриптов (nub run) в 24 раза быстрее pnpm run, package executor (nubx) в 19 раз быстрее npx, и менеджер пакетов совместимый с pnpm. Автоматически разрешает и устанавливает версию Node из package.json#devEngines или .node-version. Поддерживает TypeScript enum/namespace, JSX, декораторы, полифиллы для Temporal, автоматическую загрузку .env-файлов. Быстродействие достигается благодаря встроенному Rust-бинарнику oxc для трансформации и N-API расширениям. Блокирует postinstall скрипты по умолчанию, проверяет пакеты на известные уязвимости через osv.dev. Совместим с GitHub Actions через nubjs/setup-nub.
Ключевые факты
- Нативный Rust-бинарник дает 19-24x ускорение для npx, npm run и pnpm run команд
- Поддержка TypeScript, JSX, enum, namespace и новых синтаксисов (using) без configuration на базе существующего Node
- Автоматический download и кеширование нужной версии Node через package.json или .node-version файлы
- Встроенная безопасность: блокировка postinstall по умолчанию, проверка на osv.dev, отказ от downgrade provenance
- Drop-in замена для npm/pnpm с полной поддержкой workspace, фильтров и lifecycle hooks
Почему это важно
Node.js разработчики давно завидуют скорости Bun и удобству Deno, но массовое переключение сложно. Nub решает эту проблему incrementally, добавляет лучшие features к стандартному Node без lock-in и breaking changes. Rust-based tooling устраняет overhead Node-bootstrap в JavaScript-обертках (npx, npm run), что дает реальное ускорение в повседневной работе.
Кому это важно
Node.js разработчикам, которые хотят современные удобства (TypeScript first, быстрые скрипты) без риска; team lead'ам, заинтересованным в скорости CI/CD; разработчикам в large monorepo'нах, где каждая миллисекунда скрипта суммируется.
Как это применить
Установить через brew, npm или curl скрипт, заменить привычные команды: nub run вместо pnpm run, nubx вместо npx, nub install вместо npm/pnpm install. TypeScript файлы сразу работают через nub index.ts. В CI/CD использовать nubjs/setup-nub вместо actions/setup-node. Совместимость флага-за-флагом означает zero friction adoption.
Можно ли доверять
Show HN на Hacker News с 220 поинтами и 63 комментариями; MIT лицензия; автор colinmcd; GitHub репо открыт. Опирается на oxc (уважаемый SWC-конкурент) и стандартные N-API Node, а не пользовательские runtime-хаки. Безопасность задана консервативно: postinstall блокируется, версии пакетов проверяются по умолчанию.
Риски и подводные камни
Это еще молодой проект, поддержка edge-case Rust-расширений может отставать; потенциальный vendor lock-in, если автор потеряет интерес. Дополнительно: быстродействие пакет-менеджера зависит от сетевых условий (fetch из регистра), локальный cache может требовать cleanup. Совместимость с экзотичными postinstall хуками не гарантирована по дизайну.