Node.js 17 has officially been released, offering several important updates that enhance the performance and usability of this widely used JavaScript runtime. One of the standout features of Node.js 17 is the increased emphasis on “promisified” APIs, making asynchronous programming even more intuitive for developers. This version introduces promise-based APIs to the Readline module, which is used for reading data from streams such as process.stdin
. This update simplifies error handling and stream management, as promises naturally align with async/await syntax, reducing the need for callback functions.
In addition to the new API improvements, Node.js 17 brings support for OpenSSL 3.0, which includes significant updates such as a new Federal Information Processing Standards (FIPS) module. While OpenSSL 3.0 APIs remain mostly compatible with OpenSSL 1.1.1, Node.js developers anticipate some ecosystem impacts due to tighter restrictions on key sizes and cryptographic algorithms. These changes will likely require updates from libraries and applications that depend on cryptographic functionality, although the transition is expected to be largely seamless for most users.
Another useful addition to Node.js 17 is the enhancement of stack traces. Now, when a fatal exception occurs and causes the process to exit, the stack trace will include the specific Node.js version that was running. This change makes debugging easier and helps developers quickly identify issues that may be tied to specific Node.js releases. Additionally, Node.js 17 comes with support for Google’s V8 9.5 JavaScript engine, which includes performance optimizations and new capabilities, such as additional supported types for the Intl.DisplayNames
API.
Node.js 17 marks a significant shift in the project’s release schedule, as it replaces Node.js 16 as the “current” release line. Node.js 16 is slated to be promoted to long-term support (LTS) status next week, ensuring continued updates and support until April 30, 2024. With Node.js 17, developers can expect more frequent updates, with new releases expected roughly every two weeks. This release cycle is part of a broader initiative known as Next 10, which looks back at the first decade of Node.js and lays out a vision for the next ten years, focusing on defining key technical values and priorities for the platform’s future evolution.