The release of Node.js 19 is now available! Node.js 19 replaces Node.js 18 as our current release line, with Node.js 18 being promoted to long-term support (LTS) next week.
What do these two releases mean? Node.js 19 is ready for early feature testing, and Node.js 18 LTS will be fully ready for production deployments starting next week, October 25.
Rafael Gonzaga from Nearform and Ruy Adorno from Google have been working as the release leads for this version.
“With over 1,150 commits since the last release, Node.js continues to improve along a broad spectrum of functionality. Improvements in connectivity, performance and throughput are important parts of Node.js 19. We’ve been working hard on making Node.js more secure and performant, and I believe we are getting better and better. If you’re in active deployment, Node.js 18 LTS is for you. If you’re interested in getting access to features early, Node.js 19 is ready,” said Rafael Gonzaga, Node.js Core Member. “Many thanks to our open source contributors for making Node.js better and better.”
What’s exciting about Node.js 19 is that you can expect new releases approximately every two weeks, always keeping you up to date with the latest features and changes. Since this is an odd-numbered release line, Node.js 19 will not be promoted to LTS. You can read more about our release policy at https://github.com/nodejs/release.
The increased frequency of Node.js releases means that cool features are now being added over time, yet Node.js 19 includes several updates.
“Node.js releases are fundamentally a team effort, and, more broadly, a community effort. Node.js 19 and Node.js 18 LTS are great examples of this with input and code from a wide range of developers,” said Ruy Adorno, Node.js Release Working Group Chair and Senior Software Developer, Google. “Try out Node.js yourself, and if you have contributions, we are very interested in working with you.”
Main updates for Node.js 19
- HTTP(S)/1.1 KeepAlive by now set by default
- Custom ESM Resolution Adjustments
- Dropped support for DTrace/SystemTap/ETW
- llhttp 8.1.0
HTTP(S)/1.1 KeepAlive by default
Node.js now sets keepAlive to true by default. Outgoing HTTP or HTTPs connections will automatically use HTTP 1.1 Keep-Alive. It could be set this way before but specific parameters needed to be set. Now it’s by default. This means better performance and throughput by default.
Custom ESM Resolution Adjustments
Node.js has removed the –experimental-specifier-resolution flag. Its functionality can now be achieved via custom loaders.
Dropped support for DTrace/SystemTap/ETW
DTrace can be used to get a global overview of a running system, such as the amount of memory, CPU time, filesystem and network resources used by the active processes. It can be an important tool, but keeping it up-to-date is complex, and it was decided we don’t have personnel to properly support it. If you are interested in helping to bring DTrace back, an issue has been opened here: github.com/nodejs/node/issues/44550.
This project is a port of http_parser to TypeScript. It is used to generate the output C source file, which can be compiled and linked with an embedder’s program like Node.js. It parses both requests and responses. The parser is designed to be used in performance HTTP applications. The Node.js team is regularly improving llhttp with new API features and new callbacks.
Try it out today
To download Node.js v19.0.0, visit: https://nodejs.org/en/download/current/. Check out the release post at https://nodejs.org/en/blog/release/v19.0.0, which contains the list of commits included in this release. The team would love to hear your feedback!
“Thank you to Rafael and Ruy for taking on this release, and thank you to our community – your feedback is so important for the iteration of Node.js,” said Senior Software Engineer at Red Hat, Node.js TSC Member, and prior major release steward, Bethany Griggs. “As a long time maintainer of Node.js, hearing from the community allows us to push these releases more efficiently.”
Testing your applications and modules with Node.js 19 helps to ensure the future compatibility of your project with the latest Node.js changes and features.
For the timeline of Node.js releases, check out the Node.js Release Schedule.
“We look forward to what the community will build with the release of Node.js 19,” said OpenJS Foundation Executive Director Robin Ginn. “With each release, the team is quickly working to ensure developers are always up to date and able to test out new features.”
We’d like to thank all of the Node.js collaborators and contributors, as this release and upcoming ones are a direct result of their efforts!