Latest in branch 4.x
4.9.1
Released 29 Mar 2018
(8 years ago)
SoftwareNode.js
Version4.x
StatusLTS
End of life
CodenameArgon
Initial release4.0.0
08 Sep 2015
(10 years ago)
Latest release4.9.1
29 Mar 2018
(8 years ago)
End of bug fixes01 Apr 2017
(Ended 9 years, 1 month ago)
End of security fixes30 Apr 2018
(Ended 8 years ago)
Release noteshttps://github.com/nodejs/node/releases/tag/v4.9.1
Source codehttps://github.com/nodejs/node/tree/v4.9.1
Documentationhttps://nodejs.org/dist/latest-v4.x/docs/api/
Downloadhttps://nodejs.org/download/release/latest-v4.x/
Node.js 4.x ReleasesView full list

What Is New in Node.js 4?

CategoryChange
New FeaturesV8 4.5 -- ES6: arrow functions, classes, typed arrays, template strings, generators, Promises, Symbols, Map/Set
New Featuresio.js merged back into Node.js -- first unified release
New FeaturesLong-Term Support (LTS) plan announced
New FeaturesARM (ARMv6, ARMv7, ARMv8) first-class support
Improvementsnpm upgraded to 2.14.2
Improvementschild_process.send() now async with optional callback
Deprecatedutil.is*() functions (isArray, isString, etc.)

The Merger of io.js and Node.js -- A New Chapter

Node.js 4 is the result of merging the io.js project back into Node.js under the io.js Technical Steering Committee. io.js was a community-led fork started in 2014 to accelerate v8 updates and open governance. The merger under the Node.js Foundation united both communities under a single, faster-moving release cadence.

This release ships V8 4.5 -- bringing a massive ES6 feature set natively. Before this, developers depended on Babel or CoffeeScript for class syntax, arrow functions, and template literals.

ES6 in Production -- Arrow Functions, Classes, Promises

Node.js 4 is the first release where writing modern JavaScript without a transpiler became viable for production server code. Key ES6 features enabled by default:

// Arrow functions
const add = (a, b) => a + b;

// Classes
class EventEmitter {
  constructor() { this.events = {}; }
  on(name, fn) { (this.events[name] = this.events[name] || []).push(fn); }
}

// Template literals
const msg = `Hello, ${user.name}! You have ${count} messages.`;

// Generators
function* range(start, end) {
  for (let i = start; i < end; i++) yield i;
}

// Promises
fetch('/api/data')
  .then(res => res.json())
  .catch(console.error);

Long-Term Support (LTS) Plan

Node.js 4 introduces the LTS lifecycle model. Even-numbered major versions (4, 6, 8...) become LTS releases, supported for 30 months -- 18 months active + 12 months maintenance. Odd-numbered versions are short-lived Current releases for new feature development.

This gives teams a predictable upgrade path: LTS to LTS, with ample overlap time. Node.js 4 is the first LTS under this model.

ARM Support -- Node.js on IoT and Embedded Devices

Node.js 4 adds first-class ARM support across ARMv6 (Raspberry Pi), ARMv7, and the new 64-bit ARMv8. Prebuilt binaries are available for all three. This unlocks Node.js as a platform for IoT and edge computing devices.

FAQ

Is Node.js 4 an LTS release?
Yes. Node.js 4 (codename "Argon") was the first LTS release under the new lifecycle plan. It reached end-of-life in April 2018.

What is the difference between Node.js 4 and io.js v3?
Node.js 4 is essentially io.js v3 + the Node.js project branding re-unified under the Node.js Foundation. The V8 version is similar (4.5 in Node.js 4 vs 4.4 in io.js v3) with incremental fixes.

Can I use ES6 classes as drop-in replacements for prototype-based patterns?
Yes. ES6 classes are syntactic sugar over the prototype chain. class Foo {} and function Foo() { Foo.prototype... } produce equivalent objects. You can mix class and prototype syntax within a codebase.

Are Promises in Node.js 4 native or polyfilled?
Native. V8 4.5 ships a spec-compliant native Promise implementation. No polyfill needed.

Does util.is*() deprecation mean I need to change my code immediately?
The functions still work in v4 -- they are documented as deprecated. They were removed in later versions. Replace them with explicit type checks: Array.isArray(x), typeof x === 'string', etc.

Releases In Branch 4.x

VersionRelease datenpm version
4.9.129 Mar 2018
(8 years ago)
2.15.11
4.9.028 Mar 2018
(8 years ago)
2.15.11
4.8.707 Dec 2017
(8 years ago)
2.15.11
4.8.606 Nov 2017
(8 years ago)
2.15.11
4.8.524 Oct 2017
(8 years ago)
2.15.11
4.8.411 Jul 2017
(8 years ago)
2.15.11
4.8.302 May 2017
(9 years ago)
2.15.11
4.8.204 Apr 2017
(9 years ago)
2.15.11
4.8.121 Mar 2017
(9 years ago)
2.15.11
4.8.021 Feb 2017
(9 years ago)
2.15.11
4.7.331 Jan 2017
(9 years ago)
2.15.11
4.7.205 Jan 2017
(9 years ago)
2.15.11
4.7.105 Jan 2017
(9 years ago)
2.15.11
4.7.006 Dec 2016
(9 years ago)
2.15.11
4.6.208 Nov 2016
(9 years ago)
2.15.11
4.6.118 Oct 2016
(9 years ago)
2.15.9
4.6.027 Sep 2016
(9 years ago)
2.15.9
4.5.016 Aug 2016
(9 years ago)
2.15.9
4.4.728 Jun 2016
(9 years ago)
2.15.8
4.4.623 Jun 2016
(9 years ago)
2.15.5
4.4.524 May 2016
(10 years ago)
2.15.5
4.4.405 May 2016
(10 years ago)
2.15.1
4.4.312 Apr 2016
(10 years ago)
2.15.1
4.4.201 Apr 2016
(10 years ago)
2.15.0
4.4.122 Mar 2016
(10 years ago)
2.14.20
4.4.008 Mar 2016
(10 years ago)
2.14.20
4.3.202 Mar 2016
(10 years ago)
2.14.12
4.3.116 Feb 2016
(10 years ago)
2.14.12
4.3.009 Feb 2016
(10 years ago)
2.14.12
4.2.621 Jan 2016
(10 years ago)
2.14.12
4.2.520 Jan 2016
(10 years ago)
2.14.12
4.2.423 Dec 2015
(10 years ago)
2.14.12
4.2.303 Dec 2015
(10 years ago)
2.14.7
4.2.203 Nov 2015
(10 years ago)
2.14.7
4.2.113 Oct 2015
(10 years ago)
2.14.7
4.2.012 Oct 2015
(10 years ago)
2.14.7
4.1.205 Oct 2015
(10 years ago)
2.14.4
4.1.123 Sep 2015
(10 years ago)
2.14.4
4.1.017 Sep 2015
(10 years ago)
2.14.3
4.0.008 Sep 2015
(10 years ago)
2.14.2