V8’s garbage collection and three JIT compilers
#514 — December 12, 2023
✍️ We’re prepping our annual roundup issue for next week, just before we take our Christmas break, so keep an eye out for that. We’re also considering the future. We’re exploring covering some extra server-side and non-browser topics, like Bun, Deno, serverless, etc. Stay tuned for a survey to gather your input. 🙂
Your editor, Peter Cooper
▶ Node.js Configurations Masterclass — Well-known Node developer and TSC member Matteo looks at the phenomenon of so much Node code depending on the value of environment variables (and NODE_ENV, in particular, which affects the behavior of many modules) and the role that secret management can play in building robust, secure apps.
💡 There is a music bed throughout the video you might dislike, in which case Matteo’s ▶️ “NODE_ENV = production is a lie” is a shorter, music-free talk flying through things with a broader brush.
Redis with Wings – Built for Modern Node Applications — Dragonfly is a drop-in Redis® replacement with significant performance and scalability advantages. Applications built on Dragonfly deliver incredibly fast user experiences while reducing both costs and complexity.
The V8 Team
In other V8 spelunking news, Andy Wingo has been taking a look into progress with V8’s garbage collection. What does V8’s GC even look like these days?
The latest VS Code release has many goodies including being able to drag tabs into their own new windows, TypeScript 5.3, a V8 heap snapshot visualizer (as above), and Go to Symbol in Workspace now excludes symbols from node_modules by default.
🔐 The OpenJS Foundation shares its latest Node.js security progress report, covering all sorts of things Node.js security folks have been up to recently.
The popular ‘ngrok’ ingress/reverse proxy platform has launched a new Node.js SDK so you can make a service available through them in a single function call.
The Complete Puppeteer Cheatsheet — If you want to control a headless Chrome browser from Node, Puppeteer is for you. Now we just need a Playwright one as well 😉
▶ Deploying Node.js with Google’s Duet AI — Duet AI is Google’s AI-based assistive agent that works both in the IDE and within Google Cloud. For now.
Get Started with Node.js 20 on Red Hat OpenShift — Red Hat has released a fully-supported Node 20 container image.
Lucas Holmquist (Red Hat)
Job Scheduling in Node with Agenda: A Beginner’s Guide
Node.js, TypeScript and ESM: It Doesn’t Have to Be Painful
🛠 Code & Tools
Name Checker: Check if a Project Name is Taken — An online tool that checks a bunch of different package registries (npm, GitHub, GitLab, PyPI, Maven, RubyGems, Go packages, Rust crate, etc.) to see if the name is used by another project.
Auth. Built for Devs, by Devs — Easily add login, registration, SSO, MFA, user management and a bazillion more auth features to your application.
Rockpack 4.2: An Alternative React App Builder — Akin to Create React App, the goal is to get project setup time as low as possible, but Rockpack holds different opinions around how far to take things and packs in a lot of ideas including server side rendering, linting, and testing.
npm-check-extras: Check for Outdated and Unused Dependencies — A CLI app to check for outdated and unused dependencies and run update/delete over those you select.
p-map 7.0: Map Over Promises Concurrently — Differs from Promise.all() in that you can control the concurrency and whether or not to stop iterating when there’s an error.
👉 Free Temporal 101 & 102 Courses in TypeScript: Learn Temporal’s open source key concepts and best practices with our self-paced training.
node-re2: Bindings for Google’s RE2 Regular Expression Library — RE2 is a C++ finite-state machine-based regex library that takes a different approach to PCRE. It’ll appeal to you if you want to avoid exponential runtime issues with certain regexes/ReDOS or so-called ‘evil input’.
💡 You can experience the difference in approach by running this simple ReDoS script, CTRL+Cing it once you get bored, then switching in RE2, which completes quickly 🙂
Is Text or Binary? 9.3 – Is a filename/buffer is text or binary data?
SendGrid Node.js Client 8.1 – The official Twilio SendGrid API.
Marked 11.1 – Markdown parsing and generation.
SVGO 3.1 – Node.js-powered SVG optimizer.
NestJS Throttler 5.1 – Rate limiting module for NestJS.
Article Extractor 8.0.4 – Extract article text from pages.
pnpm 8.12 – Fast, efficient package manager.
ws 8.15 – Fast Node.js WebSocket library.
np 9.2 – A better npm publish
📖 OpenComic 1.0 – Node-powered comic/manga-reader app.