The Node.js team has officially released Node.js v24.0.0, bringing a wave of exciting features, updates, and a few breaking changes. As a major release, v24 sets the foundation for modern JavaScript applications with improved performance, new experimental features, and important security updates.

1. V8 JavaScript Engine Updated to v12.4

Node.js v24 ships with V8 12.4, the latest version of the JavaScript engine that powers Chrome and Node.js. This brings performance improvements, better language feature support, and engine optimizations, ensuring faster execution and more efficient memory usage.
New language features from recent ECMAScript specifications are now available out of the box.

2. Built-in WebSocket Client (Stable)

After being experimental for some time, the WebSocket client API is now stable. This means you can use WebSocket connections directly in Node.js without relying on third-party packages:

const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => {
  console.log('Connected');
};
ws.onmessage = (event) => {
  console.log('Received:', event.data);
};

This simplifies real-time communication in applications like chat apps, games, or live dashboards.

3. Fetch API is Fully Stable

The built-in Fetch API is now considered fully stable in Node.js. No more needing node-fetch or similar libraries to perform HTTP requests:

const response = await fetch('https://api.example.com/data');
const data = await response.json();

This change aligns Node.js more closely with browser environments, making isomorphic JavaScript easier.

4. Permission Model (Experimental)

One of the biggest new experimental features is the Permission Model, aimed at improving security. It allows developers to restrict access to system resources like file system, child processes, and environment variables at runtime.
Example:

node --experimental-permission --allow-read=/app/data index.js

You can grant granular permissions, similar to security models used in browsers or Deno.

5. New Timers Promises APIs

Node.js v24 introduces new Promise-based timers for better async handling:

import { setTimeout } from 'node:timers/promises';
await setTimeout(1000);
console.log('Waited 1 second');

Cleaner async code with less callback hell!

6. Deprecations and Breaking Changes

As expected with a major release, there are a few breaking changes:

  • Removed deprecated modules and methods.
  • Updates to built-in modules that may require slight adjustments to your existing applications.
  • Upgrades in some APIs like HTTP/2 and Diagnostics to match newer standards.

It’s important to test your applications thoroughly when upgrading.

Other Notable Improvements

  • Updates to assert, stream, and url modules.
  • Better support for ES Modules (ESM) workflows.
  • Improvements to diagnostics tools and debugging support.
  • Various performance optimizations under the hood.

End of Support Notice

With Node.js v24 released, Node.js v20 moves into long-term support (LTS) later this year, and older versions like v18 are closer to their end-of-life dates. Planning your upgrade path is crucial to stay secure and take advantage of new features.

Node.js v24 represents a significant step forward — from a more secure execution environment to better web standard compatibility. Whether you’re building APIs, real-time systems, or full-stack applications, upgrading to Node 24 can simplify your development experience and enhance performance.

source: https://github.com/nodejs/node/releases/tag/v24.0.0