Latest in branch 8.x
8.17.0
Released 17 Dec 2019
(6 years ago)
SoftwareNode.js
Branch8.x
StatusLTS
End of life
CodenameCarbon
Initial release8.0.0
30 May 2017
(8 years ago)
Latest release8.17.0
17 Dec 2019
(6 years ago)
End of bug fixes01 Jan 2019
(Ended 7 years, 4 months ago)
End of security fixes31 Dec 2019
(Ended 6 years, 4 months ago)
Release noteshttps://github.com/nodejs/node/releases/tag/v8.17.0
Source codehttps://github.com/nodejs/node/tree/v8.17.0
Documentationhttps://nodejs.org/dist/latest-v8.x/docs/api/
Downloadhttps://nodejs.org/download/release/latest-v8.x/
Node.js 8.x ReleasesView full list

What Is New in Node.js 8?

CategoryChange
New Featuresasync/await natively supported (V8 5.7)
New Featuresutil.promisify() backported
New FeaturesN-API (experimental) for stable native addons
New Featuresnpm 5 bundled
ImprovementsV8 Inspector integration promoted to stable
ImprovementsWHATWG URL parser added to core
ImprovementsBuffer() constructor deprecated in favor of Buffer.alloc()/Buffer.from()
SecurityOpenSSL 1.0.2l

async/await Natively Available -- The Biggest Change in Modern Node.js

Node.js 8 ships with V8 5.7, making async/await natively available without flags or transpilation. This is arguably the most impactful developer experience improvement in Node.js history -- switching from nested callbacks and promise chains to readable, sequential-looking async code.

// Before async/await
function getUser(id) {
  return db.findOne({ id })
    .then(user => permissions.load(user))
    .then(perms => ({ ...user, perms }));
}

// With async/await in Node.js 8
async function getUser(id) {
  const user = await db.findOne({ id });
  const perms = await permissions.load(user);
  return { ...user, perms };
}

V8 Inspector Stable -- Node.js Debugging in Chrome DevTools

The V8 Inspector protocol is stable in Node.js 8. Running node --inspect server.js starts the debugger endpoint. You can then open chrome://inspect in Chrome to attach, set breakpoints, inspect memory, and profile CPU -- all without extra tools.

node --inspect server.js
# or break on first line:
node --inspect-brk script.js

WHATWG URL API

Node.js 8 introduces the WHATWG URL class (the same standard as browsers). It replaces the older url.parse() with a spec-compliant implementation that handles relative URLs, search params, and unicode domains correctly.

const url = new URL('https://example.com/path?q=hello&page=2');
console.log(url.hostname);   // example.com
console.log(url.searchParams.get('q')); // hello

Buffer Safety -- Buffer.alloc() Over new Buffer()

The Buffer() constructor is deprecated in Node.js 8. The replacement APIs are Buffer.alloc(size) (zero-filled), Buffer.allocUnsafe(size) (uninitialized, faster), and Buffer.from(data). The old constructor was a security risk because it could expose uninitialized memory from the heap.

FAQ

Is Node.js 8 an LTS release?
Yes. Node.js 8 (codename "Carbon") was an LTS release. Support ended December 2019.

Does async/await in Node.js 8 require Babel?
No. V8 5.7 is the first V8 version to natively implement async/await. No transpilation required for Node.js 8+ targets.

What is the performance difference between async/await and Promise chains?
In early V8 implementations async/await had some overhead. V8 6.x (Node.js 10) significantly improved this. In Node.js 8, async functions are still faster than deeply nested callbacks, but if you need maximum throughput on tight loops, profile before committing.

Does the WHATWG URL class support URL manipulation?
Yes. Properties like url.searchParams (a URLSearchParams instance) are mutable -- setting them updates the full URL string. url.searchParams.set('page', 3) modifies url.href in place.

What does npm 5 add over npm 4?
npm 5 introduced package-lock.json for deterministic dependency resolution, significantly faster installs via a parallel-fetch pipeline, and npm audit (added in npm 6, but the lock file was foundational).

Releases In Branch 8.x

VersionRelease datenpm version
8.17.017 Dec 2019
(6 years ago)
6.13.4
8.16.209 Oct 2019
(6 years ago)
6.4.1
8.16.115 Aug 2019
(6 years ago)
6.4.1
8.16.016 Apr 2019
(7 years ago)
6.4.1
8.15.128 Feb 2019
(7 years ago)
6.4.1
8.15.026 Dec 2018
(7 years ago)
6.4.1
8.14.118 Dec 2018
(7 years ago)
6.4.1
8.14.027 Nov 2018
(7 years ago)
6.4.1
8.13.020 Nov 2018
(7 years ago)
6.4.1
8.12.010 Sep 2018
(7 years ago)
6.4.1
8.11.415 Aug 2018
(7 years ago)
5.6.0
8.11.312 Jun 2018
(7 years ago)
5.6.0
8.11.215 May 2018
(8 years ago)
5.6.0
8.11.129 Mar 2018
(8 years ago)
5.6.0
8.11.028 Mar 2018
(8 years ago)
5.6.0
8.10.006 Mar 2018
(8 years ago)
5.6.0
8.9.402 Jan 2018
(8 years ago)
5.6.0
8.9.307 Dec 2017
(8 years ago)
5.5.1
8.9.205 Dec 2017
(8 years ago)
5.5.1
8.9.107 Nov 2017
(8 years ago)
5.5.1
8.9.031 Oct 2017
(8 years ago)
5.5.1
8.8.125 Oct 2017
(8 years ago)
5.4.2
8.8.024 Oct 2017
(8 years ago)
5.4.2
8.7.011 Oct 2017
(8 years ago)
5.4.2
8.6.026 Sep 2017
(8 years ago)
5.3.0
8.5.012 Sep 2017
(8 years ago)
5.3.0
8.4.015 Aug 2017
(8 years ago)
5.3.0
8.3.008 Aug 2017
(8 years ago)
5.3.0
8.2.120 Jul 2017
(8 years ago)
5.3.0
8.2.019 Jul 2017
(8 years ago)
5.3.0
8.1.411 Jul 2017
(8 years ago)
5.0.3
8.1.329 Jun 2017
(8 years ago)
5.0.3
8.1.215 Jun 2017
(8 years ago)
5.0.3
8.1.113 Jun 2017
(8 years ago)
5.0.3
8.1.008 Jun 2017
(8 years ago)
5.0.3
8.0.030 May 2017
(8 years ago)
5.0.0