#527 — April 9, 2024
zx v8.0: Google’s Way to Write Shell Scripts with Node — A long-standing way to make scripting a more pleasant experience. zx provides useful wrappers around child_process, escapes arguments and gives sensible defaults. v8.0 somehow makes zx 20x smaller, faster, makes it easier to kill processes, pass input to commands, and more. A substantial release.
Build a RAG Chatbot App with MongoDB and Node.js — Embark on the RAG to Riches Developer Quest — a month of innovation, learning, and exclusive rewards awaits you. You’ll interact with AI-enhanced bots and learn how to build your own with Atlas Vector Search and Node.js. Register now!
MongoDB sponsor
The April 3 Node.js Security Releases — Includes v18.20.1 (LTS), v20.12.1 (LTS) and v21.7.2 (Current), each rolling out fixes to llhttp and Undici to tackle two HTTP related vulnerabilities.
The Node.js Project
⚠️ There’s also a set of April 9 security releases likely to land later today, if you’d prefer to wait for those.
Bun 1.1 Released with Windows Support — With the codename Bundows, the popular alternative JS runtime can now run directly on Windows 10+ (plus WSL, macOS and Linux, etc). This is a key step in Bun’s broader adoption vs Node, and even features like Bun Shell work on Windows. Node compatibility continues to improve too with support for node:http2 and IPC support between Bun and Node processes.
The Bun Team
IN BRIEF:
Deno 1.42 has been released with JSR becoming a first-class citizen and further Node compatibility improvements.
A developer explains why they use Node, Deno, Bun, QuickJS and txiki.js – essentially a bulletpoint comparison of the strengths of each.
Samuel Groß of the V8 team explains the V8 Sandbox, a security mechanism designed to prevent memory corruption in the V8 engine impacting other memory in the process.
Node.js Debugging in Chrome DevTools — If Chris didn’t know how to do it, I’m going to predict many readers don’t either, so his simple example of setting it up might be helpful 🙂
Chris Coyier
Migrating 500+ Tests from Mocha to Node.js — A quick retrospective of how the Astro team migrated more than 500 test suites from Mocha to the Node.js test runner.
Astro
Versioning Workflows with TypeScript — Learn when and how to apply versioning, then practice using our TypeScript SDK in this free, hands-on training course.
Temporal Technologies sponsor
How to Implement Rate Limiting in Express.js — A practical walk through a simple setup. A viable option against certain bots and users, though not a universal solution for DDoS or determined attackers.
Antonello Zanini
🤖 A Quick First Look at Amazon Bedrock (with Node) – Amazon Bedrock is AWS’s service for working with various machine learning models. Raymond Camden
📄 Building an Article Recommendation System with Upstash, Fly and OpenAI Rishi Raj Jain
📄 Managing Node.js Processes “why I think using pm2 is unnecessary and what I think should be done instead.” James Sumners
📺 Building a Modular Monolith with Fastify Matteo Molina
📄 Understanding Threads in Node.js Pavel Romanov
🛠 Code & Tools
JS-Torch: A PyTorch-Like Library for JavaScript — Python’s PyTorch is one of the gold standards amongst machine learning libraries, but this project brings some of its features directly into the JavaScript world. Early days but this could become a big deal for ML in JS?
Eduardo Leao
Flyweight: An ORM Specifically for SQLite — Some interesting ideas here, a little different to your typical ORM.
Andrew Jones
📊 Counterscale: Scalable Web Analytics You Can Run on Cloudflare — A simple web analytics tracker and dashboard that’s designed to be easy to deploy and maintain by hosting it on Cloudflare (for free too, up to a certain level).
Ben Vinegar
📰 Classifieds
📆 Using AI-powered Autofix to fix broken code – Join us on April 25th to preview Autofix and learn how we are using ML to prioritize issues and alerts.
Hookdeck: The Amazon EventBridge Alternative. Receive, authenticate, transform, filter, route, and send messages across your EDAs.
Janeway: A Node Console REPL with Object Inspection — Has some neat features including being able to look into buffers with a built-in hex viewer.
Eleven Ways
PGlite 0.1.2 – Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno.
VineJS 2.0 – Form data validation library for Node.js.
better-sqlite 9.4.5 – Neat way to use SQLite from Node and Electron (and now supporting Electron 29).
js-bson 6.6 – MongoDB BSON parser for Node and browsers. Binary.toString and Binary.toJSON now align with BSON serialization.
node-source-walk 7.0 – Execute a callback on every node of a source code’s AST.
Nightwatch.js 3.6 – Node.js end-to-end testing framework.
Electron Packager 29.2 – Customize and package Electron apps.
stream-to-it 1.0 – Convert Node streams to streaming iterables.
Mongoose 8.3 – MongoDB object modelling approach.
Octokit.js 3.2 – ‘Batteries-included’ GitHub SDK.
🖼 TIFF 6.0 – Pure JS TIFF image decoder.
Pino 8.20 – Fast JSON-powered logging.