4.9.1

Latest release in branch 4.x
Released 8 years ago (March 29, 2018)

Software Node.js
Branch 4.x
Status LTS
End of life
End of bug fixes April 01, 2017
End of security fixes April 30, 2018
First official release version 4.0.0
First official release date 10 years ago (September 08, 2015)
Release notes https://github.com/nodejs/node/releases/tag/v4.9.1
Source code https://github.com/nodejs/node/tree/v4.9.1
Documentation https://nodejs.org/dist/latest-v4.x/docs/api/
Download https://nodejs.org/download/release/latest-v4.x/
Node.js 4.x Releases View 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

Version Release date npm version
4.9.1 8 years ago
(March 29, 2018)
2.15.11
4.9.0 8 years ago
(March 28, 2018)
2.15.11
4.8.7 8 years ago
(December 07, 2017)
2.15.11
4.8.6 8 years ago
(November 06, 2017)
2.15.11
4.8.5 8 years ago
(October 24, 2017)
2.15.11
4.8.4 8 years ago
(July 11, 2017)
2.15.11
4.8.3 8 years ago
(May 02, 2017)
2.15.11
4.8.2 9 years ago
(April 04, 2017)
2.15.11
4.8.1 9 years ago
(March 21, 2017)
2.15.11
4.8.0 9 years ago
(February 21, 2017)
2.15.11
4.7.3 9 years ago
(January 31, 2017)
2.15.11
4.7.2 9 years ago
(January 05, 2017)
2.15.11
4.7.1 9 years ago
(January 05, 2017)
2.15.11
4.7.0 9 years ago
(December 06, 2016)
2.15.11
4.6.2 9 years ago
(November 08, 2016)
2.15.11
4.6.1 9 years ago
(October 18, 2016)
2.15.9
4.6.0 9 years ago
(September 27, 2016)
2.15.9
4.5.0 9 years ago
(August 16, 2016)
2.15.9
4.4.7 9 years ago
(June 28, 2016)
2.15.8
4.4.6 9 years ago
(June 23, 2016)
2.15.5
4.4.5 9 years ago
(May 24, 2016)
2.15.5
4.4.4 9 years ago
(May 05, 2016)
2.15.1
4.4.3 10 years ago
(April 12, 2016)
2.15.1
4.4.2 10 years ago
(April 01, 2016)
2.15.0
4.4.1 10 years ago
(March 22, 2016)
2.14.20
4.4.0 10 years ago
(March 08, 2016)
2.14.20
4.3.2 10 years ago
(March 02, 2016)
2.14.12
4.3.1 10 years ago
(February 16, 2016)
2.14.12
4.3.0 10 years ago
(February 09, 2016)
2.14.12
4.2.6 10 years ago
(January 21, 2016)
2.14.12
4.2.5 10 years ago
(January 20, 2016)
2.14.12
4.2.4 10 years ago
(December 23, 2015)
2.14.12
4.2.3 10 years ago
(December 03, 2015)
2.14.7
4.2.2 10 years ago
(November 03, 2015)
2.14.7
4.2.1 10 years ago
(October 13, 2015)
2.14.7
4.2.0 10 years ago
(October 12, 2015)
2.14.7
4.1.2 10 years ago
(October 05, 2015)
2.14.4
4.1.1 10 years ago
(September 23, 2015)
2.14.4
4.1.0 10 years ago
(September 17, 2015)
2.14.3
4.0.0 10 years ago
(September 08, 2015)
2.14.2