HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
nodejs
node
JavaScript2014–2026
nodejs / node

node

Node.js JavaScript runtime ✨🐢🚀✨

376Distinct people
482Mentions
1Explicit recommenders
123.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Node.js JavaScript runtime ✨🐢🚀✨

GitHub

Where it is used

  • weather.com — weather.com uses Node.js to power its website. This is the runtime behind their public weather.com site. Source

What people are saying

Expect a blog post shortly, but from v8 we get these language changes: - await/async behind flag (already covered in thread) - Exponentiation operator: > console.log(60**2*24);…

jbergstroem used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 6:01:08 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year482 dated mentions

Observed mentions: 2014-11-28 03:40:25 UTC to 2026-11-01 13:22:11 UTC.

0204060801002014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 14 mentions; 3 submissions, 11 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 96 mentions; 41 submissions, 55 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 68 mentions; 23 submissions, 45 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 66 mentions; 25 submissions, 41 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 31 mentions; 10 submissions, 21 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 19 mentions; 11 submissions, 8 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 22 mentions; 13 submissions, 9 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 20 mentions; 5 submissions, 15 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 27 mentions; 7 submissions, 20 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 32 mentions; 11 submissions, 21 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 39 mentions; 11 submissions, 28 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 17 mentions; 3 submissions, 14 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 31 mentions; 8 submissions, 23 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC14311
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC964155
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC682345
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC662541
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC311021
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC19118
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC22139
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC20515
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC27720
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC321121
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC391128
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC17314
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC31823

What Hacker News says

31 sources
That JS supports await isn't nearly as much a problem as the fact that it defensively defers execution any time it encounters one. This hurts most badly for iterators. Files are usually read from disks in chunks of 64K bytes. If you present the data as an async byte iterator you'll get 65,534 defensive deferrals, and one actual wait. If you have ten layers of transformation it will be 655,350 defensive deferrals and 10 real waits. These defensive deferrals aren't so expensive in terms of CPU time, but they ARE very expensive in terms of wall clock time. All other work must be halted so the event loop code can run. Eventually synthetic deferrals dominate the wall clock cost of running the program. This isn't hypothetical either. Here's someone trying to build steam parsing on Node and finding that it's too slow to be useful: https://github
Read the rest
.com/nodejs/node/issues/31979 The solution is stream iterators. They are sync when they can be and async when they must be: https://docs.bablr.org/architecture/spacetime
In The AI cost of JavaScript frameworks
That's a fair criticism... they move slower but mostly because they were the first. They would have to build a new Server and Request/Response primitives from scratch, or deprecate what they already have, or somehow shoehorn the existing types into the new ones. They do seem to have just merged in support for Web Workers though, which I've been following for a while: https://github.com/nodejs/node/issues/43583 So I don't think they're opposed to standardising, but it's trickier when you have some past cruft built up. Lets not forget that the fetch() standard was built for browsers, and is a bit of a stretch to make it work on servers at all. You have to diverge from the fetch spec to even make it make sense in a server environment (with things like Cookies handling off the top of my head).
In Bun 1.4 Rust rewrite is not looking good?
One of the strengths of TypeScript besides its expressiveness is that it's compatible with the massive npm ecosystem. Most packages only ship untyped JavaScript with type declarations defining the interface,[0] so realistically you'd still need a JavaScript engine if you use any packages. But if you're starting from scratch and know you won't be using any npm packages, you might as well use AssemblyScript.[2] [0]: Publishing packages in TypeScript is explicitly discouraged by Node[1]. TypeScript isn't backwards compatible even in minor releases, and its compiler settings aren't portable for packages. [1]: https://github.com/nodejs/node/blob/main/doc/api/typescript.... [2]: https://www.assemblyscript.org/
In Scriptc by Vercel: TypeScript-to-Native compiler, no JavaScript engine in binary
They listed some of the memory bugs they had in the blog post, I just looked at three of them, the first one was this: > heap-use-after-free crash in node:zlib when calling .reset() on a zlib, Brotli, or Zstd stream while an async .write() is still in progress on the threadpool https://github.com/spaceraccoon/vulnerability-spoiler-alert/... If you look at the fix you can see its all in their zig codebase: https://github.com/oven-sh/bun/commit/621c4016218bb782e05907... What is kind of funny is that nodejs also had a basically identical bug with an almost identical fix: https://github.com/spaceraccoon/vulnerability-spoiler-alert/... https://github.com/nodejs/node/commit/53bcd114b10021c4a883b0... But now the interesting question, how does the code look like in Rust? https://github.com/oven-sh/bun/blob/8f1a9540fdff25410506de76... It has the s
Read the rest
ame guard in place as the zig and c++ versions, the rust code also just calls into the zlib bindings after the "write in progress" check. So in this case at least the same exact use-after-free would've happened and they don't win anything from the rust port. Another one was this: > crash and out-of-bounds read in Buffer#copy and Buffer#fill when a valueOf callback detaches or resizes the underlying ArrayBuffer during argument coercion I think ths is the fix: https://github.com/oven-sh/bun/commit/79522ab6c579736dc239fa... But the bug here is in C++ bindings, Rust wouldn't have helped here either. Last one: > double-free crash in the CSS parser when background-clip had vendor prefixes and multi-layer backgrounds Fix: https://github.com/oven-sh/bun/commit/912970c98437e418a95b6b... Code side-by-side: Rust: https://github.com/oven-sh/bun/blob/8f1a9540fdff25410506de76... Zig: https://github.com/oven-sh/bun/blob/912970c98437e418a95b6b5b... I can't judge the Zig code, perhaps someone could say if this was a "beginner" mistake. But this is at least one case where Rust would've helped, although even that is a bit complicated considering stuff like bun_ptr: // Lifetime-erasure helpers (RUST_PATTERNS.md §6/§18) — re-exported here so // crates that already depend on `bun_collections` (logger, css, js_parser, // crash_handler, watcher, http_types) can route the borrowck-dodge through // one centralised `unsafe fn` instead of open-coding the lifetime cast. pub use bun_ptr::{RawSlice, detach_lifetime, detach_ref}; Which is a bit concerning?
In Zig Creator Calls Spade a Spade, Anthropic Blows Smoke
The good part about a language runtime is there's a massive corpus of tests that are in that language and agnostic to the implementation language. For a JS engine that's Test 262: https://github.com/tc39/test262 For node that's its unit tests which are mostly JS: https://github.com/nodejs/node/tree/main/test Node also runs the web platform tests too: https://web-platform-tests.org/ Bun has a similar large corpus of JS/TS tests: https://github.com/oven-sh/bun/tree/main/test You're right about general purpose rewrites, but language runtimes are a lot easier.
In Bun has an open PR adding shared-memory threads to JavaScriptCore
Node refuses to support TypeScript within node_modules, see https://github.com/nodejs/node/issues/58429 this means you can't do "Typescript-only npm packages". They made that intentionally at the beginning: > Currently there is consensus that Node.js should NOT run TypeScript files inside `node_modules. It is not supported to avoid package maintainers to release TS only package.
In Deno 2.8

Showing the 15 most recent of 31 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.