8 min read

Node.js Digest #9: Bundows, Node.js documentary, paid Redis, V8 Sandbox

Node.js Digest #9 by Oleksandr Zinevych

Hello, community! This is Oleksandr Zinevych, Engineering Director at Avenga. A fresh issue of the Node.js digest is right in front of you, so let us jump straight into the news 👇

Key highlights

🔹 Deno v1.42 with a large batch of improvements to JSR.

🔹 April security improvements for Node.js (with the new website design, it is even more pleasant to read).

🔹If you work with Edge, you have surely heard about the Hono framework, which I already mentioned in previous digests. This month, new versions v4.2+ were released with many interesting improvements.

🔹V8 received a significant security improvement for memory management. This is currently more relevant to browsers, but in my opinion, the Node.js community should be aware of it.

🔹Redis is changing its license. The creators announced this in their blog — it is no longer classic open source.

🔹 On April 4 and 5, one of the largest Node.js conferences took place — Node Congress. As always, there were many interesting talks from key industry figures. In a few weeks, the public recordings will be available on the gitnation portal, and we will review the most interesting ones in the next digest.

🔹npm creator Isaac Schlueter and several other npm client developers announced that they are working on something that will solve all the problems of modern JavaScript package managers.

🔹RedwoodJS now supports React Server Components.

New design for the official Node.js website

Finally, Node.js has a convenient and modern website 👏

The release of the new version seems to have been deliberately timed to coincide with the documentary release. While I do not spend much time on the Node.js website itself, it is nice to see that the community works not only on the platform but also on such ancillary things as the website. In their blog, the team shared a bit more detail about how the redesign process went (and this is not the first time), what technologies were used, what challenges they faced, and what results they achieved. The article is not very long, but it is interesting to see yet another example of open source development.

Release of the Node.js documentary

No memes needed here. The Node.js documentary has finally been released, so I strongly recommend that everyone who works with this technology set aside an evening to watch it:

Node.js: The Documentary | An origin story

It is very interesting to look back retrospectively at how the platform and the entire ecosystem around Node.js developed, how Node.js almost died and then got a second wind, and much more — directly from the people who built it.

npm is not going anywhere

The Node.js team confirmed that npm is not going anywhere from the main Node.js bundle. After the news about possibly removing the default package manager npm from the Node.js bundle shook the community and caused a wave of criticism, we can finally exhale and sleep peacefully. The position that separating npm is not the task that needs to be worked on right now has been documented (and merged) in the corresponding PR.

Bundows (Bun 1.1)

Less than half a year (actually, it has been half a year) since the previous major Bun release, a new version 1.1 was released with many interesting new features. First and foremost, I want to highlight the way the team communicates their news:

Bun 1.1: Bundows is here

While you can sometimes see the developers reading from a teleprompter, I think this way of presenting a release is really cool and gives you a chance to see the real people doing incredible work, rather than just a text version of release notes.

Among the news that Bun 1.1 brought us are, of course, Windows support, significant performance improvements, new APIs, test mocks, and much, much more. And all of this comes with screenshots of incredible performance compared to alternative runtimes.

You can check out the full list of updates here.

Winter is coming!

I do not know about you, dear reader, but I have not yet recovered from the Bun release. Especially from its incredible performance metrics, some of which either worked a bit differently in real-world examples or were not that critical for developers. And then a new contender for the title of fastest JavaScript runtime appeared — Winter.js.

It is built with Rust and SpiderMonkey. And, as always, we are promised incredible performance:

Besides supporting most popular frameworks and libraries, it also supports the Cloudflare API. Of course, the runtime still needs battle-testing and community feedback, but the authors' promise to focus on Edge Deployment looks promising.

Node.js and performance

Rafael Gonzaga published his second article looking retrospectively at what happened with Node.js in 2023. This time it is about the performance of individual Node.js APIs, while a section about frameworks will come as a separate additional article on Rafael's blog.

The article contains many interesting graphs showing how much the Node.js contributor team cares about performance and improves it from release to release. For example, the graph below shows the performance of http.Server and how it improved in Node.js 20.

You can explore the other metrics, of which there are many, in the article itself.

Something to read

🔹Raymond Camden talks about three new features in Node.js that he has really liked recently. Which features do you like? Share in the comments 💬

🔹In another article, you can see a quick example of using AWS Bedrock with Node.js.

🔹Astro continues to build out its ecosystem and now presents its new project — Astro DB. In the article, the authors talk about how they were inspired by WordPress and what journey they went through to ship this project.

🔹After several years of discussion, V8 received a memory management improvement — the so-called sandbox. The article provides an interesting breakdown of the motivation behind this feature and why it matters.

🔹Case studies from large companies are always interesting and insightful. This time, the Figma team shares how they built a permissions system.

🔹If you have not worked with workers and do not really know what they are or how they work, Stanley Ulili's article provides clear answers to all these questions.

🔹A story about why in certain cases Jest is not as fast as you would like.

Something to watch

🔹Matteo Collina's thoughts on whether Node.js is still alive (spoiler: alive and kicking).

The Alleged 'End' of Node.js isMuch Ado About Nothing

🔹Do you use GitHub Copilot? If so, maybe it is time to ditch it? A new video from the Dreams of Code channel where the author shares his thoughts on why you should give up Copilot.

Why I'm no longer using Copilot

🔹Astro is now also a database. A few thoughts on this, complete with examples, on the Theo — t3.gg channel.

Why Did Astro Make A Database?

🔹An interesting video about System Design, as is the channel itself, which is dedicated to this topic. In the video, the author talks about what you should answer when asked about a distributed logging system during a System Design interview 🤓

14: Distributed Logging & Metrics Framework | Systems Design Interview Questions With Ex-Google SWE

🔹A bit about the new AI that is, once again, supposed to completely replace us.

AI just officially took our jobs... I hate you Devin

🔹You already know a lot about Git, but there will surely be something new you have not encountered 😉

So You Think You Know Git Part 2 — DevWorld 2024

🔹A crash course on Docker in 8 minutes. If you have worked with Docker, you will not learn anything new, but for those with limited experience with this tool, it can be useful.

100+ Docker Concepts you Need to Know

🔹A bit about the Effect toolkit for building complex solutions in TypeScript.

Production-Grade TypeScript by Johannes Schickling (Effect Days 2024)

🔹The title is clickbaity, but it is interesting to hear about the state of the Serverless approach in 2024.

Expert Talk: Are We Post-Serverless? • Julian Wood & James Beswick • GOTO 2024

Library of the month

If you need something fast and built on WebSockets, take a look at the HyperExpress library. It is a self-contained server that offers great performance, Express compatibility, and few open issues on GitHub.

If someone wanted to put this inside AWS Lambda or something similar — please do not. Remember, it is a web server 🙂

That is all for now. Leave your comments, share the digest with friends, and ask questions if you have any. See you in future issues!

Like the digest? Subscribe to the author to receive notifications about new posts via email.