Node.js 18, the latest version of the popular JavaScript runtime, has been released, bringing enhancements in cryptography and turning on an experimental fetch API by default. However, prebuilt binaries for 32-bit Windows are not yet available.
Introduced April 19 and available from the Node.js website, Node.js 18 improves security with support for the OpenSSL 3.0 cryptography library, which includes open source implementations of SSL and TLS protocols for securing communications across networks. OpenSSL 3.0 has a FIPS (Federal Information Processing Standards) module that has been submitted for validation. FIPS is a set of US government requirements for governing cryptographic usage in the public sector.
Node.js 18’s experimental, browser-compatible global fetch API provides an interface for fetching resources across networks. Although available since Node.js 17, the API will be enabled by default in Node.js 18. While similar to XMLHttpRequest
, the API provides a more powerful, flexible feature set, Node.js project developers said. The API will remain experimental until more test coverage is added and contributors verify that the API implements as much of the specification as possible.
For Windows, prebuilt binaries for 32-bit implementations of Microsoft’s OS initially will not be available due to issues building the V8 JavaScript/WebAssembly engine. Node.js developers hope to restore 32-bit binaries for Windows with a future V8 update. With Node.js 18, the V8 JavaScript/WebAssembly engine has been updated to version 10.1. There are prebuilt binaries for Linux and MacOS.
Node.js 18 is classified as a “Current” release, meaning it is geared for testing before being suitable for production use when it is promoted to long-term support (LTS) status in October 2022. The release is part of the Next-10 strategic initiative, an effort to forge a path for Node.js for the next 10 years.
Also new in Node.js 18:
- An experimental test runner module,
node:test
, helps enable creation of JavaScript tests that result in TAP (Test Anything Protocol) format. - A Web Streams API, also experimental, allows JavaScript to programmatically access streams of data received over the network and process them as desired by the developer.
- Users can build a Node.js binary with a custom V8 startup using the
–-node-snapshot-main
flag of the configure script. This is an experimental capability.