---
title: "Node 26.0 ships Temporal; Node 26.1 brings FFI"
publication: "Node Weekly"
issue: 623
published_at: "2026-05-07"
canonical_url: "https://nodeweekly.com/issues/623"
---

Plus Rolldown 1.0, what the Node team discussed in London, and Node 20 says bye.        

#​623 — May 7, 2026 

[Read on the Web](https://nodeweekly.com/issues/623)  

Together with [![Memetria\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png)](https://dashboard.memetria.com/nodeweekly/)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ck46oncyiofoth467qvt.jpg)](https://nodejs.org/en/blog/release/v26.0.0)  

[Node.js 26.0 (Current) Released](https://nodejs.org/en/blog/release/v26.0.0) — It's here! Complete with the [Temporal API](https://bloomberg.github.io/js-blog/post/temporal/) enabled by default, V8 14.6 (say hello to [map ‘upsert’ methods](https://github.com/tc39/proposal-upsert) like `Map.prototype.getOrInsert()` and [iterator sequencing](https://github.com/tc39/proposal-iterator-sequencing) with `Iterator.concat()`), plus Undici 8. v26 is the ‘Current’ cutting-edge release until October when it gets promoted to LTS. 

Rafael Gonzaga  

💡 [Node 26.1 (Current)](https://nodejs.org/en/blog/release/v26.1.0) also landed _today_ with a feature that has so much promise I've written **a mini article at the end of this issue** about it!  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/e5cd1ae5.png)](https://dashboard.memetria.com/nodeweekly/) 

[Memetria K/V: Efficient Redis & Valkey Hosting](https://dashboard.memetria.com/nodeweekly/) — Memetria K/V hosts Redis OSS and Valkey for Node.js apps, featuring large key tracking and detailed analytics. 

Memetria sponsor    

[A Report from the London Node.js Collaboration Summit](https://nodejs.org/en/blog/events/collab-summit-2026-london) — What was discussed at the Node team’s latest in-person summit in London last month, including Node’s new release schedule (starting with Node 27), James Snell’s iterable streams API (a.k.a. [node:stream/iter](https://nodejs.org/docs/latest-v25.x/api/stream_iter.html#iterable-streams)), OpenTelemetry support, how to deal with AI contributions to Node, libuv v2, and more. 

Wu and Cheung (Node.js Project)   

**IN BRIEF:** 

- Node 20 _(Iron)_ has just entered [End-of-Life (EOL).](https://nodejs.org/en/about/eol) With this, _all_ LTS Node releases can run TypeScript without flags via type stripping.
- [Electron 42](https://github.com/electron/electron/releases/tag/v42.0.0) has been released and no longer downloads the Electron binary in a `postinstall` script due to recent supply chain attacks using that vector. It now downloads itself dynamically the first time it's_run_.
- Due to Temporal API support being provided by a Rust library ([temporal_rs](https://github.com/boa-dev/temporal)), [building Node 26+ from _source_ requires a Rust toolchain.](https://github.com/nodejs/node/blob/main/BUILDING.md#building-nodejs-with-temporal-support)   

[Rolldown 1.0: The High Performance JS Bundler](https://voidzero.dev/posts/announcing-rolldown-1-0) — It’s stable, fast, production-ready, and you get esbuild-like speed with Rollup plugin compatibility. Recent Node versions already handle `.ts` files, ESM, and JSON imports natively, so Rolldown’s real win is in _shipping_, when you want the smallest tree-shaken runtime artifact possible. 

The VoidZero Team  

💡 [tsdown 0.22](https://github.com/rolldown/tsdown/releases/tag/v0.22.0), a library bundler built on Rolldown 1.0, has also been released.  

[Why Migrate to Valibot?](https://valibot.dev/blog/why-migrate-to-valibot/) — [Valibot](https://valibot.dev/) is a light, modular TypeScript schema validation library and an alternative to the likes of Zod. [v1.4.0](https://github.com/open-circle/valibot/releases/tag/v1.4.0) just dropped, too. 

Fabian Hiller   

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jpjdpg5ptldt7heqprbh.jpg)](https://github.com/html-to-text/node-html-to-text/blob/master/packages/html-to-text/README.md)  

[html-to-text 10.0: Advanced HTML to Text Converter](https://github.com/html-to-text/node-html-to-text/blob/master/packages/html-to-text/README.md) — Uses a variety of techniques to convert even complex HTML into plain text (but with some formatting, such as for tables). v10 brings the project up to modern standards. 

KillyMXI   

[Stale API Responses Start with a Stale Data Source](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=node-weekly-newsletter) — TimescaleDB extends Postgres for analytics on live data. No pipeline, no second database. [$1000 credit to start](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=node-weekly-newsletter). 

Tiger Data (creators of TimescaleDB) sponsor   

[PM2 7.0: The Production Process Manager for Node.js](https://github.com/Unitech/pm2/releases/tag/v7.0.0) — The long standing Node-based production process manager ([homepage](https://pm2.keymetrics.io/)) has been refactored, dropping a large number of external dependencies. It's also extended its Bun runtime support in cluster mode and with the monitoring agent. 

Alexandre Strzelewicz (Unitech)   

[Find My Way 9.6: A Fast HTTP Router That Uses Radix Trees](https://github.com/delvedor/find-my-way) — A ‘crazy fast’ HTTP router that’s framework independent and supports the things you’d expect for path matching. _(If you’re a Fastify user, you’re already using it!)_ 

Tomas Della Vedova   

[opentype.js: Read and Write OpenType Fonts](https://opentype.js.org/) — Get direct access to letterforms. Has broad WOFF, OTF, and TTF support, and supports ligatures, kerning, and emojis. As well as creating paths for text, you can create and save your own custom fonts from scratch too. [GitHub repo.](https://github.com/opentypejs/opentype.js) 

Frederik De Bleser   

- [sqs-consumer 15.0](https://github.com/bbc/sqs-consumer) – The BBC's approach to building Amazon Simple Queue Service (SQS) based apps without boilerplate.
- [pnpm v11.0.8](https://github.com/pnpm/pnpm/releases/tag/v11.0.8) – The fast and efficient `npm` alternative has had a [stream of small releases](https://github.com/pnpm/pnpm/releases) since last week's [big v11 release.](https://pnpm.io/blog/releases/11.0)
- [article-extractor 8.1](https://github.com/extractus/article-extractor) – Extract an article's content and metadata given a URL.
- 🖼️ [probe-image-size 7.3](https://github.com/nodeca/probe-image-size) – Get the size of images (JPG, GIF, PNG, and more) without fully downloading them.
- [fast-json-stringify 6.4](https://github.com/fastify/fast-json-stringify) – It's 2x faster than `JSON.stringify()`      

📰 Classifieds   

💫 [Lessons-learned](https://judoscale.com/blog/autoscaling-insights-what-nearly-a-decade-of-autoscaling-your-apps-has-revealed-to-us?utm_source=node-weekly&utm_medium=newsletter&utm_campaign=lessons-learned&utm_content=jon-from-judoscale): Jon from Judoscale shares what they’ve learned from a decade (!) autoscaling thousands of apps. 

--- 

🔎 [Elastic-quality search for Postgres as an extension](https://github.com/paradedb/paradedb). BM25, analytics & vectors — no Elasticsearch required.    

📢 Node 26.1 Lands FFI Support  

[Node.js 26.1.0 (Current)](https://nodejs.org/en/blog/release/v26.1.0) quickly followed Node.js 26 with a single notable feature: **an experimental `node:ffi` module.** 

FFI ([Foreign Function Interface](https://en.wikipedia.org/wiki/Foreign_function_interface)) is a mechanism to directly interface with libraries written in other languages (most commonly those exposing a C ABI). 

FFI support has been _complicated_ in Node over the years. [node-ffi](https://github.com/node-ffi/node-ffi) was an early option, but quite fragile. [Koffi](https://koffi.dev/) offers a more robust take on the idea and continues to work well today, but wasn't adopted as an official, core solution. 

Node settled on the [Node-API / NAPI approach](https://nodejs.org/api/n-api.html) of writing glue code to bridge the Node / C++ gap, an approach that's now universal in Node libraries with native dependencies. 

With [this work](https://github.com/nodejs/node/pull/62072) now in Node 26.1 behind a `--experimental-ffi` flag, it seems we're finally getting a core, officially supported FFI solution. It integrates with Node's [permissions model](https://nodejs.org/api/permissions.html) too (and [it's fast](https://github.com/nodejs/node/pull/63140)). 

Here's a basic (macOS only) example I just made to show off the basic shape of the support and how easy it is, though with only a single, simple call: 

--- 

```
import { dlopen } from 'node:ffi';
const path = '/usr/lib/libSystem.B.dylib';

const { functions } = dlopen(path, {
  sqrt: { parameters: ['f64'], result: 'f64' },
});

console.log(functions.sqrt(2));  // 1.414213...
``` 

--- 

I also tried SQLite 3 with some success, and am looking forward to giving [Raylib 6.0](https://github.com/raysan5/raylib/releases/tag/6.0) a go as an example of a far more complex C library. 

My fingers are crossed that Node finds a way to make this stable, so we can all benefit from more direct use of native dependencies in Node in future 😄    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
