Nub

nub contributors·Nub.Nub

The all-in-one JavaScript toolkit that augments Node.js instead of trying to replace it.

An all-in-one toolkit for Node.js. One Rust binary to run your files and scripts, install dependencies, and manage Node itself — a Bun-like modern DX on top of the node you already have. There's no new runtime to adopt and no lock-in: every augmentation rides on Node's own public extension surfaces.

winget install --id Nub.Nub --exact --source winget

Latest 0.7.5·August 9, 2026

Release Notes

A memory-retention release, plus two fixes to nub upgrade. Memory retention Seven unbounded-retention defects, each reproduced with a fixture against a plain Node control before and after the fix. (#702) ─────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────── Area │What changed │Measured ─────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────── nub run -r supervisor│Streaming mode no longer retains every prefixed output line for the child's whole life. A script that never exits — nub run -r dev — grew the supervisor 1:1 with child output. │45 → 325 MB over 50 s, now flat at 15 MB ─────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────── Aggregate output │Flushes past 8 MiB instead of buffering the entire run. A non-TTY stdout selects this path, so CI and piped runs were affected too. │250 MB climbing → flat 29 MB, output still in order ─────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────── URL.createObjectURL │Captures one compact Buffer when the Blob is built, capped at 4 MiB, and decodes only when a Worker asks for the source. │20k object URLs: +43.1 → +5.6 MB (plain Node: +1.1) ─────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────── Blob │A Blob no longer pins whatever its construction parts referenced. │2000 Blobs holding 64 KB between them: 504 → 4 MB external ─────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────── Transpile-cache sweep│Was armed on an unref'd setImmediate the process exited before running, so a user whose runs are all synchronous never swept. It is now scheduled only when a sweep is due, and │— │ref'd. │ ─────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────

Upgrade Fixes in #705.

  • On Windows the command reported its install path in the extended-length form — installed v0.7.4 to \?\C:\Users\you.nub. The install itself was always correct. Paths are now spelled for display at the print sites, while the path used for the file swap keeps the MAX_PATH exemption a deep install directory depends on. (#704)
  • A nub upgrade with nothing newer to install downloaded and swapped in the release it was already running. It now reports already on the latest release and stops. An explicit --version still reinstalls, which is what repairs a damaged install, and --stable from a canary build still downloads, because that is a channel switch. (#664)
  • The upgrade line now names the version being left as well as the one arriving.
  • The --yes flag advertised a confirmation prompt that has never existed. Its help text now says what it does.

Docs The reference pages were rewritten for density — the config reference, the FAQ, and the install, runtime, runner and deployment sections — and two rotted links were fixed.

What's Changed

  • fix: bound unbounded retention in the run supervisor, blob URLs, and the caches by @colinhacks in #702
  • fix(upgrade): strip the Windows verbatim path prefix, and skip a no-op upgrade by @colinhacks in #705

Installer type: zip

x64061956457776121EC8A4DE43DA47A85EEBB9E3C26111FF39FC5C55865836DE43
arm64E46B42266AB42C6A57B43B2472D970DE4DD337ED633305F857905C7E1B1E69A3

Details

Homepage
https://nubjs.com/
License
MIT
Publisher
nub contributors
Support
https://github.com/nubjs/nub/issues
Copyright
Copyright (c) 2026 nub contributors
Moniker
nub

Tags

javascript-runtimenode-version-managernodejspackage-managerscript-runner

Older versions (15)

0.7.4
x6470002FA46598417E57F532D50C650F2FC42C0C9EB31C2EBF0592CEBF52D6E3F9
arm64B5057366E920ABA6226C368026578855D19439F5D1493BEA577247709E46A3A0
0.7.3
x64543943543827924CE57405B9CCF29C7160BBE0ABB1B237AF053586B2EC4298B6
arm647158978211B165B8AC1A9635D206C8D8505747F35101B18ACC58770AFD4A72C4
0.7.2
x6495419BC5D78329F1F2E73A102762222C45537C7FBF8E38D0C85AE7D4EE2CDABE
arm64B591425A7D27C9DFCF83ED4F864A2D593086A6294EDB517BDF8789A1AB0EEC79
0.7.1
x648E8617D6381A1E37BBA989D7B576488C39F22E3E5266BEEE6C9BCCE4088F8DE6
arm64570E67293AE65231AFC4F34B4DD3D910B0F346E81B5405B217E37A0C301AD050
0.7.0
x6427499B1FEF8C98398172D86DFC423F64259CA82E3345F4D95A65098086A0F8B3
arm642607910E467DADBD93836EF6EAC11AA3D7D31DC4A652CF09A5C0157EA8660BDA
0.6.0
x64A4472D680FA3FBCD31703A8F9963CF783CAF9A435A19E538D74D16316437EA8F
arm64B0253B6C9263D279DAD13273C35A46BB17A6158F5B24608F5EB9810526C638AD
0.5.0
x64A8A2FE530DD93C6402ECFFB12A4CE33E3B39D761CD5115FE3252ABA1342912B0
arm6420A94B3CEF4FDB5AA671541B0E748E6A6F77F4E51D3B5B8FBE5587DAB78DB1A6
0.4.13
x647E76E907465E1DF344C558406537F4A8E34700A6D9AE87B2457CD85CC03EF3AF
arm64B3B404E1418FFD03F3D4F5E62B76C3463907438E3088DF02AA246BBDFE89E2EA
0.4.12
x64020290D403A004466CD8DE3A7EC569D74694B05C33E2EF7A2892B5269E4C3FFA
arm64DD2BA9512E62A6A1CE6885278B6E07AF3985838A949123D3A3C8CDA2F69F2382
0.4.11
x640628BC26B44A0A58D0019BF0C35F63AEEFEF0C6A610B450166777762AE9C7670
arm6408E6028FD236C75608F75BD14C67BAB99AB10C3E21BDB1180AF047784C86E70E
0.4.10
x64C55156CF48B65DC83725DC42A0B3FE14C3067407BD587F0A01C7F2176C093548
arm64F58F24EF3333E290BE4B04CD51F711CD442012F839E8160259671CC208BBC13C
0.4.9
x643BB30D5C22FB793D6C9C3B3000724282F5465B1A6D0D6592E4AA4818C3597C0C
arm645F5A9B74B6C98039007FDA00D426B90CB5FC91AFF61672B9E00CE3B3AC6DA219
0.4.8
x643F3F0883CFC18EEE393879E3DD8AFB1C3CD6BD62BAB6A659352AE1BC80286F27
arm64FDC1C785FF40A5B98BEBA74D783E7648F6BEFCF1D282EE77C8A8E2D7F78F42FA
0.4.7
x646C62750028261B63929406C5A8FF179DD02E0FA5FD0EAA59AF2C23C1E0101024
arm64EE447999E39FCB38C0A1777113C32A3669EEF47439A0D9D1916B4FC35E0555D4
0.1.0
x64D0F93810A545E09906739FD7A08F92826933732D06554B081E66A82867CFB149
arm649F481B5912CCB244CC06204C33E9A673AD9E32528B34AE5504E1EA84989A834A