colinmcd

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.

[0] https://nodejs.org/api/cli.html#-require-module

[1] https://nodejs.org/api/module.html#moduleregisterhooksoption...

show comments
ivanjermakov

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).

show comments
gorjusborg

Very smart. You can't lose all your customers for vibe-coding a migration to Rust if you are already written in Rust ;)

show comments
ssalbdivad

Just merged a PR migrating our entire monorepo to nub.

0 issues, ridiculously fast.

show comments
skybrian

> TypeScript-friendly resolution: extensionless imports, tsconfig.json#paths

I’m wondering how that works. Deno has very complicated import resolution, so building my own import resolver to be compatible with it is a bit of a pain. (This is for a custom lint-like tool.)

kandros

Love the idea, learning a lot of interesting things about node hooks by reading docs and some code

sgarrity

I didn't even click on the link. I just came to give the author a hat-tip on the project name. Well played.

show comments
bookernath

Nice, I think this fills a niche. Does it work on cloudflare workers?

show comments
montroser

Nice. Can we get `nub --compile` up in there like Bun has?

show comments
GL26

nice ! does this work on docker containers ?

show comments