피드 구독

Back in April, I gave an update on some of the news features in the Node.js 16 release. Today, I am happy to share that the Node.js community is releasing Node.js 17 and that next week Node.js 16 will be promoted to Long Term Support (LTS).

As per the Node.js release process, Node.js version 17 will not be promoted to LTS as only even versions get LTS. For production deployments, we recommended using Node.js 16, and focus on Node.js 17 to test and provide feedback on the new functionality and features to help pave the way for future releases. You can read more about the community release process here.

If you follow Red Hat’s work in the Node.js project or have been following our regular updates you’ll see that our strategy is to focus on aspects we believe are important to our customers, including:

  • Stable and predictable releases
  • Platform support
  • Security
  • Diagnostics
  • Performance
  • Code quality and safety net
  • Key features

The Node.js 17 release continues to deliver in these areas.

 
Node.js 17

Some of the interesting new features in the 17.x release include:

  • OpenSSL 3 support
  • Node.js version in stack traces
  • V8 JavaScript Engine Version 9.5
  • New promises APIs
  • Updated platform support
 
OpenSSL 3 Support

We have been waiting on a GA version of OpenSSL 3 for a while and we were happy to see that it arrived in September. Red Hat's Daniel Bevenius and Richard Lau have been working diligently to get the OpenSSL 3 betas integrated into the Node.js code base so we were ready to switch over to the OpenSSL 3 GA when it arrived.

While the OpenSSL 3 APIs aim to be compatible with the previous OpenSSL version, there will be some impact on users due to the switch to OpenSSL 3 as each new version of OpenSSL tightens the allowable key sizes and algorithms that are available. If you are still using small keys or older algorithms you should plan time to understand how you might be affected. More information is available in the OpenSSL3 blog post.

One of the exciting aspects of OpenSSL 3 is that it provides a path for FIPS 140-2 compliance support in community builds. Red Hat already provides FIPs support for Node.js in Red Hat Enterprise Linux distributions and containers, but community support should simplify integration of third party modules and hardware over time.

 

Node.js version in stack trace

Node.js 17 adds the Node.js version to unhandled exceptions:

 

This can help with diagnostics as it can remove a round trip asking a customer what version of Node.js they are using. It’s good to see these small but important improvements to the Node.js diagnostics over time.

 

V8 JavaScript Engine Version 9.5

Each major release brings with it an updated version of the V8 JavaScript engine along with better performance and new features. One of the interesting new features is the addition of an error cause.

Being able to better nest errors also helps with diagnostics. As an example:

 

Promise-based APIs

There is an ongoing strategic initiative within the project to add promise-based APIs. The Node.js project strives to progress this initiative with the addition of a promise-based API for readline. With Node.js 17 you can await on readline as follows:

   async function getInput() {
     const readln = readline.createInterface({ input, output });
     const response = await readln.question('You there? ');

     console.log(`Thanks for answering: ${response}`);

     readln.close();
   }


It’s great to see regular progress with the promise-based APIs being added over the last number of releases:

  • readline (v17.0.0)
  • timers (V16.0.0)
  • stream (v15.0.0)
  • fs (v14.0.0)
  • dns (v11.14.0)
Platform support

As with most major releases, this release updates the minimum supported levels for platforms and tooling used to build Node.js. Please check the documentation in Node's building instructions for all the latest minimum levels.

 

Node.js 16 promoted to LTS and what it means for you

With the promotion of version 16 to LTS, it’s now suitable for use in production, and you should consider how it fits into your migration plan. Node.js 16.x brings with features/functions that we believe are important to our customers:

  • Updated Platform support
  • V8 JavaScript Engine Version 9
  • N-API Version 8
  • New Promises APIs
  • Async Local Storage APIs

You can check out the details in my previous blog, Node.js 16 is here with updated platform support, V8 version 9, and more!


Of particular note for Mac OS X fans, this is the first Node.js LTS release with support for ARM (Apple Silicon).

It is also interesting to note that while Async Local Storage was not stable when the Node.js 16 release came out in April, it is now a stable feature as part of the LTS release.

With the community promotion of Node.js 16 to LTS, we’ll follow up with Node.js 16 support in upcoming releases of Red Hat Enterprise Linux  and Node.js Universal Base Image (UBI) containers. Keep an eye out for our upcoming release announcements.


Getting involved

Thanks to all of the project contributors
At this point I’d like to thank all of the people who contribute to Node.js releases, including Red Hat's Bethany Griggs, on the Node.js releaser team, who created and coordinated the Node.js 17 release. The community has a large cast of contributors (including those across Red Hat and IBM) working across the Node.js project and each release is the result of all of their hard work.

How you can help

There are many ways to contribute to the Node.js project. Committing code and participating in the work of the Node.js organization is not the only way to contribute to the continued success of Node.js. As a Node.js application developer or end user a few ways you can help out include:

  • Testing new releases early and often and providing feedback to the Node.js project.
  • Helping to define and move forward the priorities identified as important for the success of Node.js over the next 10 years and participating in the next-10 effort.

If you are a package maintainer, there are a number of things you can do to align with the efforts of the Node.js project including:

Wrapping up

You can read about all the new features and changes in Node.js 17 from the community post here. To learn more about the Node.js community and to learn how you can contribute, you can check out the project repository and website. If you want to read more about what Red Hat is up to on the Node.js front, check out the Node.js developers page here. Finally, if you’re a Red Hat customer, check out the customer portal for more information.


저자 소개

Michael Dawson is an active contributor to the Node.js project and chair of the Node.js Technical Steering Committee (TSC). He contributes to a broad range of community efforts including platform support, build infrastructure, N-API, Release, as well as tools to help the community achieve quality with speed (e.g., ci jobs, benchmarking and code coverage reporting). As the Node.js lead for Red Hat and IBM, he works with Red Hat and IBM's internal teams to plan and facilitate their contributions to Node.js and v8 within the Node and Google communities. Dawson's past experience includes building IBM's Java runtime, building and operating client facing e-commerce applications, building PKI and symmetric based crypto solutions as well as a number of varied consulting engagements. In his spare time, he uses Node.js to automate his home and life for fun.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리