This blog was written by Michael Dawson, with additional contributions from the Node.js Community Committee and the Node.js Technical Steering Committee.
We are excited to announce that Node.js 12 was promoted to Long Term Support(LTS) yesterday and that Node.js 13 was released today.
These releases deliver faster startup and better default heap limits, updates to V8, TLS, llhttp, new features including diagnostic report, bundled heap dump capability and updates to Worker Threads, N-API, and more.
Node.js 12 becomes the newest LTS release along with 10 and 8. Please note that 8 goes end-of-life in December (an exception to the regular LTS cycle due to the EOL of OpenSSL 1.02 so you should already be planning your migration off it to either 10 or 12.) For a reminder of the new features in Node.js please check out https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3f
The Node.js 13 release replaces version 12 in our ‘current’ release line. This release won’t be promoted to LTS so we don’t recommend it for production use but it is still useful to build and test with this version periodically. It will let you test out the latest features and ensure that your package and applications will be compatible with future versions.
V8 Gets an Upgrade: V8 update to V8 7.8
Full ICU enabled by default.
Internationalization via the International Components for Unicode (ICU) has been supported by Node.js for a long time. It helps developers write code that can support users in multiple languages and locales. Up until Node.js 13, however, only English was enabled by default. This meant that for many deployments, additional steps were required to get and enable support for the target locales. See https://nodejs.org/api/intl.html#intl_providing_icu_data_at_runtime for more details. As of Node.js 13,
full-icuis now the default, meaning that hundreds of locales are supported out of the box. This should simplify development and deployment of applications for non-english deployments.
Stable Workers API
While making the Workers API stable was backported to Node.js 12, we still feel it is important to call this out as a significant milestone in the Node.js 13 timeframe. Worker Threads (https://nodejs.org/api/worker_threads.html) is now a stable feature in both Node.js 12 and 13. While Node.js already performs well with the single-threaded event loop, there are some use-cases where additional threads can be leveraged for better results. We’d like you to try them out and let us know what use cases you have where they are helpful. For a quick introduction check out this great article: https://medium.com/@Trott/using-worker-threads-in-node-js-80494136dbb6.
New compiler and platform minimums
Node.js and V8 continue to embrace newer C++ features and take advantage of newer compiler optimizations and security enhancements.
With the release of Node.js 13, the codebase now requires a minimum of 10 for the OSX development tools and version 7.2 of the AIX operating system.
In addition, progress on supporting Python3 for building Node.js has been made. Systems that have Python 2 and Python 3 installed will still use Python 2, however, systems with only Python 3 should now be able to build using Python 3. If you encounter any problems please let us know.
Further details are available in the Node.js: https://github.com/nodejs/node/blob/master/BUILDING.md#platform-list
A big thank you to everyone who made this release come together, whether you submitted a pull request, helped with our benchmarking efforts, or you were in charge of one of the release versions. We’d also like to thank the Node.js Build Working Group for ensuring we have the infrastructure to create and test releases.
The release manager for Node.js 13 is Bethany Griggs. The release manager for promoting Node.js 12 to LTS was Michaël Zasso. For a full list of the release team members head here. You can read more about the complete list of features here.
If you are interested in contributing to Node.js, we welcome you. Learn more via our contributor guidelines.