nubjs/nubPublic

The fast all-in-one Node.js toolkit

AI summary: A fast, Rust-based toolkit that augments Node.js with built-in TypeScript, package management, and script running.

Stars
4.4K
+9 today
Forks
64
Watchers
6
Open issues
24
Open PRs
27
Contributors
~15
Commits
2K
Branches
616

RustMITCreated Jun 3, 2026Last push 2d agoLatest release v0.9.5+21 stars this week+155 this month

Quick answers

What is nub?
A fast, Rust-based toolkit that augments Node.js with built-in TypeScript, package management, and script running.
What does nub do?
Nub is a high-performance toolkit written in Rust that wraps standard Node.js to provide a modern, 'Bun-like' developer experience without introducing a new runtime or vendor-specific APIs. It natively supports running TypeScript and JSX files with extensionless imports, executing package scripts dramatically faster than npm, and installing dependencies with extreme speed. It augments the standard Node environment by injecting modern features like automatic environment variable loading, built-in data loaders for formats like YAML and TOML, and enabling experimental Node features. By leveraging Node's own extension surfaces like preloads and N-API native addons (via the oxc transpiler), Nub acts as a drop-in replacement for tsx, ts-node, nodemon, and nvm.
Who is nub for?
Node.js developers who want the speed and modern developer experience of tools like Bun, but need to remain strictly within the standard Node ecosystem to avoid lock-in. It is built for teams looking to consolidate their JavaScript toolchain and dramatically speed up local development.
How do I get started with nub?
curl -fsSL https://nubjs.com/install.sh | bash
How popular is nub on GitHub?
nubjs/nub has 4,365 stars and 64 forks on GitHub, and gained 21 stars in the last 7 days.
What license does nub use?
nubjs/nub is released under the MIT license.

Star history

since Jul 29, 2026
02K4KJul 2026Aug 2026Sep 2026Oct 2026
4.4K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 14 commits2026-06-04: 18 commits2026-06-05: 0 commits2026-06-06: 2 commits2026-06-07: 28 commits2026-06-08: 7 commits2026-06-09: 35 commits2026-06-10: 105 commits2026-06-11: 75 commits2026-06-12: 23 commits2026-06-13: 25 commits2026-06-14: 43 commits2026-06-15: 165 commits2026-06-16: 50 commits2026-06-17: 75 commits2026-06-18: 49 commits2026-06-19: 16 commits2026-06-20: 53 commits2026-06-21: 51 commits2026-06-22: 44 commits2026-06-23: 23 commits2026-06-24: 57 commits2026-06-25: 39 commits2026-06-26: 33 commits2026-06-27: 25 commits2026-06-28: 29 commits2026-06-29: 3 commits2026-06-30: 24 commits2026-07-01: 14 commits2026-07-02: 3 commits2026-07-03: 20 commits2026-07-04: 4 commits2026-07-05: 14 commits2026-07-06: 14 commits2026-07-07: 39 commits2026-07-08: 22 commits2026-07-09: 12 commits2026-07-10: 13 commits2026-07-11: 0 commits2026-07-12: 11 commits2026-07-13: 11 commits2026-07-14: 23 commits2026-07-15: 3 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 1 commit2026-07-21: 21 commits2026-07-22: 23 commits2026-07-23: 11 commits2026-07-24: 16 commits2026-07-25: 3 commits2026-07-26: 0 commits2026-07-27: 2 commits2026-07-28: 13 commits2026-07-29: 35 commits2026-07-30: 21 commits2026-07-31: 24 commits2026-08-01: 11 commits2026-08-02: 13 commits2026-08-03: 20 commits2026-08-04: 6 commits2026-08-05: 24 commits2026-08-06: 3 commits2026-08-07: 28 commits2026-08-08: 10 commits2026-08-09: 9 commits2026-08-10: 0 commits2026-08-11: 12 commits2026-08-12: 1 commit2026-08-13: 0 commits2026-08-14: 8 commits2026-08-15: 5 commits2026-08-16: 3 commits2026-08-17: 6 commits2026-08-18: 5 commits2026-08-19: 12 commits2026-08-20: 10 commits2026-08-21: 2 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 1 commit2026-08-26: 0 commits2026-08-27: 9 commits2026-08-28: 29 commits2026-08-29: 5 commits2026-08-30: 0 commits2026-08-31: 13 commits2026-09-01: 4 commits2026-09-02: 19 commits2026-09-03: 41 commits2026-09-04: 28 commits2026-09-05: 22 commits2026-09-06: 9 commits2026-09-07: 19 commits2026-09-08: 24 commits2026-09-09: 12 commits2026-09-10: 5 commits2026-09-11: 7 commits2026-09-12: 18 commits2026-09-13: 12 commits2026-09-14: 4 commits2026-09-15: 4 commits2026-09-16: 1 commit2026-09-17: 0 commits2026-09-18: 1 commit2026-09-19: 17 commits2026-09-20: 0 commits2026-09-21: 4 commits2026-09-22: 0 commits2026-09-23: 1 commit2026-09-24: 0 commits2026-09-25: 5 commits2026-09-26: 1 commit2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
1,987 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    1,987 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What nub does

Nub is a high-performance toolkit written in Rust that wraps standard Node.js to provide a modern, 'Bun-like' developer experience without introducing a new runtime or vendor-specific APIs. It natively supports running TypeScript and JSX files with extensionless imports, executing package scripts dramatically faster than npm, and installing dependencies with extreme speed. It augments the standard Node environment by injecting modern features like automatic environment variable loading, built-in data loaders for formats like YAML and TOML, and enabling experimental Node features. By leveraging Node's own extension surfaces like preloads and N-API native addons (via the oxc transpiler), Nub acts as a drop-in replacement for tsx, ts-node, nodemon, and nvm.

Node.js developers who want the speed and modern developer experience of tools like Bun, but need to remain strictly within the standard Node ecosystem to avoid lock-in. It is built for teams looking to consolidate their JavaScript toolchain and dramatically speed up local development.

  • Native TypeScript Execution: Runs TypeScript and JSX files directly using the highly optimized oxc transpiler via N-API, skipping build steps.
  • Accelerated Script Running: Executes package.json scripts significantly faster than standard npm or pnpm commands.
  • Rapid Package Management: Replaces standard package managers to install dependencies up to 18x faster.
  • Built-in Watch Mode: Replaces tools like nodemon by providing a native, highly responsive restart-on-change watcher.
  • Node Version Management: Includes built-in tools to install and switch between different versions of Node.js.
  • Automatic Environment Loading: Automatically loads .env files, providing parity with modern frameworks like Next.js and Vite.

Where teams use it

TypeScript Prototyping

Allows developers to instantly run and iterate on complex TypeScript or JSX scripts without setting up tsc, ts-node, or complex build pipelines.

CI/CD Pipeline Optimization

Accelerates continuous integration workflows by replacing slow npm installs and script executions with heavily optimized Rust-based equivalents.

Toolchain Consolidation

Helps teams simplify their development environments by replacing a fragmented stack of tools (nvm, tsx, nodemon, dotenv-cli) with a single, unified binary.

Modernizing Legacy Node Apps

Provides older Node.js projects immediate access to modern syntaxes, decorators, and data loaders without requiring a migration to Bun or Deno.

Getting started: curl -fsSL https://nubjs.com/install.sh | bash

README

main branch

Nub logo

Nub

The all-in-one Node.js toolkit

Docs   •   GitHub   •   𝕏

stars



A Bun-like DX on top of stock node, written in Rust.

nub index.ts             # TypeScript-first Node.js runtime
nub run dev              # 24× faster pnpm run
nubx prisma generate     # 19× faster npx
nub install              # 18× faster pnpm install
nub watch src/server.ts  # native watch mode
nub pm shim              # built-in Corepack-style shims
nub node install 26      # Node version manager
nub upgrade              # self update

One tool to run your files and scripts, install dependencies, and manage Node itself. No new runtime, no vendor-specific API surface, no lock-in.

Nub Instead of
nub <file> node, tsx, ts-node, dotenv-cli
nub run <script> npm run, pnpm run
nubx npx, pnpm dlx / exec
nub install npm, pnpm
nub watch nodemon, node --watch, tsx watch
nub node nvm, fnm, n, volta
nub pm corepack

Install

# macOS / Linux
curl -fsSL https://nubjs.com/install.sh | bash

# Windows (PowerShell)
irm https://nubjs.com/install.ps1 | iex

# Windows (winget)
winget install Nub.Nub

# Homebrew (macOS / Linux)
brew install nub

# Nix (flakes)
nix run github:nubjs/nub

# mise
mise use -g nub

# Or via npm (pnpm / yarn global add work too)
npm install -g @nubjs/nub

Note

Switching an existing nubjs/tap install over to the core formula takes an uninstall first:

brew uninstall nubjs/tap/nub && brew untap nubjs/tap && brew install nub

For GitHub Actions, use nubjs/setup-nub in place of actions/setup-node. It's one-to-one compatible.

- - uses: actions/setup-node@v4
+ - uses: nubjs/setup-nub@v0

File runner — nub <file>

Run a file. Supports .js, .ts, .mjs, .cjs, .mts, .cts, .jsx, and .tsx. Flag-for-flag and var-for-var drop-in compatible with node (mostly via passthrough).

nub index.ts             # TypeScript, JSX, no build step
nub --watch app.ts       # same path, restart-on-change

It augments stock Node with some of Bun/Deno's best features:

  • 🦆 Full TypeScript support, including enum, namespace
  • 🧭 TypeScript-friendly resolution: extensionless imports, tsconfig.json#paths
  • ⚛️ JSX / TSX
  • 🎂 Decorators and emitDecoratorMetadata
  • 🆕 Modern syntax like using (downleveled in transpiler when needed)
  • 🔐 Automatic .env* loading — Next.js/Vite parity
  • 🗂️ Built-in loaders for common data formats — .yaml, .toml, .jsonc, .json5, .txt
  • 🌐 Polyfills for Temporal, Worker, URLPattern (when needed)
  • 🔥 Unflags experimental features like node:sqlite, vm.Module, localStorage, WebSocket, EventSource
  • ⚡ 2.9× faster startup than tsx

How it works — Nub takes advantage of Node extension surfaces that mostly didn't exist when Deno and Bun were built:

Node provisioning

When you run a file with nub, it infers the version of Node your project expects and auto-installs it if needed. It respects (in precedence order):

  • NODE_EXECUTABLE (override)
  • package.json#devEngines
  • .node-version
  • .nvmrc
  • package.json#engines

This resolved version of Node is installed and your file is executed with it (with Nub's augmentations).

$ echo 26 > .node-version
$ nub hello.ts
Using Node.js 26.3.0 (resolved from .node-version)
Installed in 9.8s
Hello world!

Modern APIs

Modern API work out of the box under Nub. Node.js experimental APIs are unflagged, others are auto-polyfilled (e.g. Temporal on Node 25 and earlier), and others are downleveled in the transpiler (using).

API How
Temporal polyfilled below Node 26, native above
URLPattern polyfilled below Node 24, native above
RegExp.escape polyfilled below Node 24, native above
Error.isError polyfilled below Node 24, native above
Promise.try polyfilled below Node 24, native above
Float16Array polyfilled below Node 24, native above
navigator.locks polyfilled below Node 24.5, native above
reportError polyfilled
vm.Module unflagged
Wasm module imports unflagged below Node 24.5 (22.19 on the 22.x line), native above
WebSocket unflagged from Node 20.10, native from Node 22
EventSource unflagged from Node 20.18, native above
node:sqlite unflagged from Node 22.5, native from Node 22.13
addon imports unflagged from Node 22.20, never native

Watch mode

Restart-on-change driven by the resolved dependency graph plus the off-graph files that still invalidate a run — no glob list to maintain:

nub watch src/server.ts
nub --watch src/server.ts   # same path
  • 👀 Tracks the resolved dependency graph automatically
  • 🧷 Also watches the off-graph invalidators — .env*, the tsconfig.json extends chain, package.json
  • ⚙️ Runs on Node's own --watch engine, preserving output by default

View the full runtime docs 👉.


Script runner — nub run

A drop-in for npm run and pnpm run. The runner is a Rust binary with no JavaScript startup of its own, so it dispatches a warm script roughly 24× faster than pnpm run:

nub run build
nub run -r --filter "@org/*" test     # supports --filter

It's fast compared to existing JavaScript-based script runners.

Command Time Relative
nub run 14.7 ms —
npm run 329.9 ms 22×
pnpm run 442.7 ms 30×

script dispatch · warm · 50 runs · macOS — view benchmark

  • 🚀 Feels instantaneous — 14ms vs a detectable 300ms+ lag for npm/pnpm
  • 🔁 Full lifecycle support — pre/post hooks and the complete npm_* environment
  • 🧰 Local node_modules/.bin on PATH, with args forwarded without the -- separator
  • 🗃️ The full pnpm workspace surface — -r, --filter, --parallel, --workspace-concurrency, --resume-from, --stream
  • 🎯 pnpm's --filter grammar verbatim — graph (...@org/web) and changed-since ([main]) selectors

View the full script runner docs 👉.


Package runner — nubx / nub dlx

A drop-in for npx and pnpm dlx. Local-first with a download-and-execute registry fallback (same as npx). Eliminating the double-Node.js-spawn performance penalty paid by JavaScript-based tools like npx and pnpm.

nubx eslint . --fix
nubx -y [email protected] "hi"   # fetched from the registry (auto-approved via -y)
Command Time Relative
nubx esbuild --version 11 ms —
pnpm exec esbuild --version 191 ms 17×
npx esbuild --version 226 ms 19×

esbuild --version · macOS — view benchmark

  • ⚡ Runs a local bin ~19× faster than npx, with no Node in the wrapper
  • 🔎 Resolves node_modules/.bin regardless of which package manager installed it
  • 🌐 Registry fallback for uninstalled bins — fetched, run, then discarded
  • 🧩 Full pnpm exec / pnpm dlx flag parity, shell mode included
  • 🪜 Walks the resolution chain — member .bin, then workspace root, then ancestors

View the full package runner docs 👉.

Unified runner — nubr

One name for the three runners above: a file, a package.json script, or an installed bin, resolved most-specific-first. The installer puts it on PATH beside nub, and @nubjs/runner ships the same command for a project that cannot install the binary.

nubr app.ts        # a file
nubr build         # a package.json script
nubr vitest run    # an installed node_modules/.bin entry

View the unified runner docs 👉.


Package manager — nub install

Nub is a package manager powered by the Aube engine. The CLI is flag-for-flag compatible with pnpm for muscle memory, but

nub install                    
nub ci
nub add -E -D --save-catalog react
nub remove lodash
nub update
nub dedupe

It's fast — avoids the per-command Node.js bootstrap lag incurred by JS-based package managers.

Tool Time Relative
nub 171 ms —
bun 686 ms 4.0×
pnpm 3193 ms 18.7×
npm 5316 ms 31.1×

warm frozen install · TanStack Start · 313 deps · macOS — view benchmark

Security

  • 🛡️ Blocks postinstall by default
  • 🦠 Checks osv.dev for known-malicious package versions during resolution by default
  • 🔻 Refuses provenance downgrades by default
  • ⏳ Strict 24-hour minimumReleaseAge by default

Compatibility

When you run nub install inside a project, it detects the incumbent package manager (based on your package.json#packageManager or any detected lockfiles). It then runs in compat-mode, respecting the config files and environment variables for that package manager.

Under each incumbent, Nub reads that tool's branded config and no other's; the neutral .npmrc cascade and npm_config_* are read under every one.

Incumbent Config it reads
npm package-lock.json, .npmrc, overrides, workspaces, engines/os/cpu/libc
pnpm pnpm-lock.yaml, pnpm-workspace.yaml, .pnpmfile.cjs, package.json#pnpm, resolutions, catalog:, .npmrc
Yarn (read-only) yarn.lock, a .yarnrc.yml / .yarnrc subset, YARN_*, resolutions, packageExtensions, .npmrc
Bun bun.lock, bunfig.toml [install], trustedDependencies, overrides, patchedDependencies, catalog:, .npmrc
Nub neutral only — .npmrc, npm_config_*, overrides / resolutions / catalog / workspaces

View the full package manager docs 👉.


Package meta-manager — nub pm

Corepack's job, in native Rust: provision and run the exact pnpm / npm / yarn your project pins:

nub pm shim              # registers global shims (Corepack-style)

Like corepack enable, this registers global shims for npm, yarn, and pnpm. When you run a command using one of these shim aliases anywhere on your file system, the shim will:

  • Detect the version used in your project
  • Install that version if needed
  • Run the command using the proper version

Nub provides this functionality as a convenience for users who prefer to keep their current package manager. Corepack itself was unbundled from Node itself in v25.

View the full nub pm docs 👉.


Node version manager — nub node

Though Node.js versions will generally be auto-installed and cached as needed, you can manage versions manually as well.

$ nub node -h 
nub node — manage Node versions

Usage: nub node <command>

Commands:
  which                    print the resolved Node binary path (why → stderr)
  install [<version>...]   provision version(s) into nub's cache
  ls                       list versions in nub's cache
  uninstall <version>      remove a version from nub's cache
  pin <version>            write the project's Node pin

View the full nub node docs 👉.


License

MIT

⭐️ If you read this far, consider starring the repo :) ⭐️

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 8

Releases and announcements

150 total
  1. Canary 0.9.5-canary.20260926.535v0.9.5-canary.20260926.535Sep 26, 2026pre-release66 downloads

    Immutable canary build. - Version: `0.9.5-canary.20260926.535` - Commit: 1faa08ad111f671d04796ef48b7b7145dc5095eb

  2. Canary 0.9.5-canary.20260926.535canarySep 26, 2026pre-release32 downloads

    Rolling canary build of `main`, rebuilt nightly. - Version: `0.9.5-canary.20260926.535` - Commit: 1faa08ad111f671d04796ef48b7b7145dc5095eb - Install: `curl -fsSL https://nubjs.com/install.sh | bash -s canary` (or `nub upgrade --canary`) Prerelease channel — the assets below track the head of main as of the last nightly build.

  3. Nub 0.9.5v0.9.5Sep 25, 20263.1K downloads

    The release archives carry the `nubx` and `nubr` aliases, the GitHub Actions move into this repository with a new `npm-ci` step, and the package manager gets a run of install fixes. ## Package manager | Area | What changed | Links | | --- | --- | --- | | Hoisted layout | Under `node-linker=hoisted`, a package could be hoisted to where it shadowed a dependency its parent resolves further up, so `send` loaded `ms` 2.0.0 where it resolves 2.1.3. The placement walk now records the names each package resolves through an ancestor and never hoists over them. The isolated layout is unaffected. | [#965](https://github.com/nubjs/nub/pull/965), [`2c2bcc0571`](https://github.com/nubjs/nub/commit/2c2bcc057162307e85a73f4c9decf97336e59be8) | | Failed builds | Several failed dependency builds were reported as one, and the install exited 1. Every required failure is now reported in build order, and the process exits with the first failing script's code, as under `nub run`, npm, and pnpm. Fixes [#670](https://github.com/nubjs/nub/issues/670). | [#955](https://github.com/nubjs/nub/pull/955), [`fdd8a7d485`](https://github.com/nubjs/nub/commit/fdd8a7d485c6280f13249d269526e3d96a479abd) | | `tsconfig.j

  4. Canary 0.9.3-canary.20260924.529v0.9.3-canary.20260924.529Sep 24, 2026pre-release99 downloads

    Immutable canary build. - Version: `0.9.3-canary.20260924.529` - Commit: 97b9414a34b1ced23c8bbd6f1c7c5882d918635e

  5. Canary 0.9.3-canary.20260922.527v0.9.3-canary.20260922.527Sep 22, 2026pre-release34 downloads

    Immutable canary build. - Version: `0.9.3-canary.20260922.527` - Commit: 3452fb4f420dae9e85c320a03a67d672b99d44a7

Code frequency

additions and deletions
+2.1M-2.1MWeek of 2026-05-31: +149,189 linesWeek of 2026-05-31: -1,996 linesWeek of 2026-06-07: +238,327 linesWeek of 2026-06-07: -82,539 linesWeek of 2026-06-14: +160,507 linesWeek of 2026-06-14: -116,633 linesWeek of 2026-06-21: +2,138,094 linesWeek of 2026-06-21: -13,622 linesWeek of 2026-06-28: +23,941 linesWeek of 2026-06-28: -5,250 linesWeek of 2026-07-05: +63,480 linesWeek of 2026-07-05: -5,048 linesWeek of 2026-07-12: +9,235 linesWeek of 2026-07-12: -2,189 linesWeek of 2026-07-19: +53,857 linesWeek of 2026-07-19: -5,843 linesWeek of 2026-07-26: +82,695 linesWeek of 2026-07-26: -27,865 linesWeek of 2026-08-02: +55,944 linesWeek of 2026-08-02: -28,965 linesWeek of 2026-08-09: +79,443 linesWeek of 2026-08-09: -26,939 linesWeek of 2026-08-16: +127,242 linesWeek of 2026-08-16: -7,735 linesWeek of 2026-08-23: +86,964 linesWeek of 2026-08-23: -25,249 linesWeek of 2026-08-30: +88,525 linesWeek of 2026-08-30: -25,906 linesWeek of 2026-09-06: +34,430 linesWeek of 2026-09-06: -4,526 linesWeek of 2026-09-13: +720 linesWeek of 2026-09-13: -452 linesMay 31, 2026Sep 13, 2026
+3.4M lines added, -380.8K removed over the last year.

Commits per week

last 52 weeks
4510Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 34 commitsWeek of 2026-06-07: 298 commitsWeek of 2026-06-14: 451 commitsWeek of 2026-06-21: 272 commitsWeek of 2026-06-28: 97 commitsWeek of 2026-07-05: 114 commitsWeek of 2026-07-12: 48 commitsWeek of 2026-07-19: 75 commitsWeek of 2026-07-26: 106 commitsWeek of 2026-08-02: 104 commitsWeek of 2026-08-09: 35 commitsWeek of 2026-08-16: 38 commitsWeek of 2026-08-23: 44 commitsWeek of 2026-08-30: 127 commitsWeek of 2026-09-06: 94 commitsWeek of 2026-09-13: 39 commitsWeek of 2026-09-20: 11 commitsWeek of 2026-09-27: 0 commitsOct 5, 2025Sep 27, 2026
2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 11 commitsSun 1:00 — 5 commitsSun 2:00 — 1 commitsSun 3:00 — 3 commitsSun 4:00 — 1 commitsSun 5:00 — 2 commitsSun 6:00 — 0 commitsSun 7:00 — 4 commitsSun 8:00 — 8 commitsSun 9:00 — 11 commitsSun 10:00 — 16 commitsSun 11:00 — 19 commitsSun 12:00 — 18 commitsSun 13:00 — 20 commitsSun 14:00 — 17 commitsSun 15:00 — 20 commitsSun 16:00 — 8 commitsSun 17:00 — 4 commitsSun 18:00 — 3 commitsSun 19:00 — 3 commitsSun 20:00 — 12 commitsSun 21:00 — 13 commitsSun 22:00 — 10 commitsSun 23:00 — 13 commitsMon 0:00 — 4 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 4 commitsMon 8:00 — 19 commitsMon 9:00 — 35 commitsMon 10:00 — 20 commitsMon 11:00 — 34 commitsMon 12:00 — 31 commitsMon 13:00 — 25 commitsMon 14:00 — 31 commitsMon 15:00 — 31 commitsMon 16:00 — 21 commitsMon 17:00 — 10 commitsMon 18:00 — 17 commitsMon 19:00 — 11 commitsMon 20:00 — 4 commitsMon 21:00 — 2 commitsMon 22:00 — 2 commitsMon 23:00 — 12 commitsTue 0:00 — 0 commitsTue 1:00 — 2 commitsTue 2:00 — 2 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 3 commitsTue 8:00 — 8 commitsTue 9:00 — 13 commitsTue 10:00 — 32 commitsTue 11:00 — 11 commitsTue 12:00 — 13 commitsTue 13:00 — 12 commitsTue 14:00 — 26 commitsTue 15:00 — 21 commitsTue 16:00 — 33 commitsTue 17:00 — 23 commitsTue 18:00 — 15 commitsTue 19:00 — 9 commitsTue 20:00 — 8 commitsTue 21:00 — 8 commitsTue 22:00 — 21 commitsTue 23:00 — 24 commitsWed 0:00 — 17 commitsWed 1:00 — 6 commitsWed 2:00 — 2 commitsWed 3:00 — 5 commitsWed 4:00 — 7 commitsWed 5:00 — 6 commitsWed 6:00 — 5 commitsWed 7:00 — 23 commitsWed 8:00 — 25 commitsWed 9:00 — 36 commitsWed 10:00 — 31 commitsWed 11:00 — 19 commitsWed 12:00 — 7 commitsWed 13:00 — 34 commitsWed 14:00 — 36 commitsWed 15:00 — 37 commitsWed 16:00 — 40 commitsWed 17:00 — 10 commitsWed 18:00 — 22 commitsWed 19:00 — 12 commitsWed 20:00 — 10 commitsWed 21:00 — 11 commitsWed 22:00 — 12 commitsWed 23:00 — 6 commitsThu 0:00 — 7 commitsThu 1:00 — 0 commitsThu 2:00 — 1 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 1 commitsThu 7:00 — 2 commitsThu 8:00 — 7 commitsThu 9:00 — 34 commitsThu 10:00 — 19 commitsThu 11:00 — 19 commitsThu 12:00 — 19 commitsThu 13:00 — 22 commitsThu 14:00 — 22 commitsThu 15:00 — 16 commitsThu 16:00 — 21 commitsThu 17:00 — 35 commitsThu 18:00 — 26 commitsThu 19:00 — 12 commitsThu 20:00 — 12 commitsThu 21:00 — 4 commitsThu 22:00 — 10 commitsThu 23:00 — 10 commitsFri 0:00 — 13 commitsFri 1:00 — 3 commitsFri 2:00 — 3 commitsFri 3:00 — 1 commitsFri 4:00 — 2 commitsFri 5:00 — 1 commitsFri 6:00 — 0 commitsFri 7:00 — 5 commitsFri 8:00 — 9 commitsFri 9:00 — 9 commitsFri 10:00 — 18 commitsFri 11:00 — 10 commitsFri 12:00 — 21 commitsFri 13:00 — 25 commitsFri 14:00 — 24 commitsFri 15:00 — 21 commitsFri 16:00 — 19 commitsFri 17:00 — 12 commitsFri 18:00 — 11 commitsFri 19:00 — 14 commitsFri 20:00 — 12 commitsFri 21:00 — 2 commitsFri 22:00 — 4 commitsFri 23:00 — 14 commitsSat 0:00 — 3 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 1 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 4 commitsSat 9:00 — 8 commitsSat 10:00 — 15 commitsSat 11:00 — 4 commitsSat 12:00 — 17 commitsSat 13:00 — 35 commitsSat 14:00 — 25 commitsSat 15:00 — 13 commitsSat 16:00 — 10 commitsSat 17:00 — 12 commitsSat 18:00 — 9 commitsSat 19:00 — 4 commitsSat 20:00 — 6 commitsSat 21:00 — 1 commitsSat 22:00 — 18 commitsSat 23:00 — 16 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jun 18, 2026daily#20+12
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195.2K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    140K stars · Rust

  • openai/codex

    Lightweight coding agent that runs in your terminal

    127.8K stars · Rust

  • immich-app/immich

    High performance self-hosted photo and video management solution.

    115.6K stars · TypeScript

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.6K stars · Rust