Colin here, creator of Nub. I’ve had the general shape of this in mind for years. Nub runs your code with stock `node`, augmented with a `--require` preload hook[0] that adds a transpiler (oxc-powered, packaged as a Node-API add-on), registers a module resolution hook[1], and injects polyfills as needed for APIs like `Worker`, `Temporal`, etc. All purely additive, your code ultimately runs using Node’s actual engine & stdlib implementations.
I saw this on twitter and loved it, such a good move on your part Colin. Hope the project picks up tons of steam!
ivanjermakov 23 minutes ago [-]
Respect for embracing existing tech instead of rewriting a worse version of it. Wonder where we would be today if all alternative-building effort went to Node instead (with proper leadership).
gorjusborg 54 minutes ago [-]
Very smart. You can't lose all your customers for vibe-coding a migration to Rust if you are already written in Rust ;)
Zambyte 33 minutes ago [-]
They'll get bought out by OpenAI and convert the project to Zig
ssalbdivad 2 hours ago [-]
Just merged a PR migrating our entire monorepo to nub.
0 issues, ridiculously fast.
daavin 1 hours ago [-]
[dead]
kandros 18 minutes ago [-]
Love the idea, learning a lot of interesting things about node hooks by reading docs and some code
sgarrity 1 hours ago [-]
I didn't even click on the link. I just came to give the author a hat-tip on the project name. Well played.
colinmcd 1 hours ago [-]
Thanks :) Highly recommend clicking the link too!
bookernath 1 hours ago [-]
Nice, I think this fills a niche. Does it work on cloudflare workers?
colinmcd 1 hours ago [-]
Cloudflare Workers is a different runtime and has its own toolchain around it. Nub could theoretically support it when executing files (spawn `wrangler dev` instead of `node` if wrangler.toml is detected or something) but really I'm focused on making the Node.js experience as good as possible.
The other pieces of the toolkit could absolutely be used: package manager, script runner, package runner. Works with anything that implements the Node module resolution algorithm (actually Yarn PnP also works out of the box...).
GL26 1 hours ago [-]
nice ! does this work on docker containers ?
colinmcd 1 hours ago [-]
Yep, full support on macOS, Linux, Windows. No official image yet (I'll start on this now) but you can get started with something like this.
FROM node:26-slim
RUN npm i -g @nubjs/nub
Works with any Node version down to 18.19 but recommend 22.15+ for best performance (that's when synchronous registerHooks was introduced[0])
[0] https://nodejs.org/api/cli.html#-require-module
[1] https://nodejs.org/api/module.html#moduleregisterhooksoption...
0 issues, ridiculously fast.
The other pieces of the toolkit could absolutely be used: package manager, script runner, package runner. Works with anything that implements the Node module resolution algorithm (actually Yarn PnP also works out of the box...).
[0] https://nodejs.org/api/module.html#moduleregisterhooksoption...