#​517 — January 16, 2024

Read on the Web

Together with  Dragonfly
Node.js Weekly

npm in Review: A Retrospective in Numbers — From Socket comes a look at the past year from the perspective of the npm registry, focused largely on statistics (2.5 million live packages!), including download numbers, popular packages, as well as some ‘quirky facts’ like the package with the most maintainers (554, if you're wondering.)

Philipp Burckhardt (Socket)

Node v21.6.0 (Current) Released — Includes improvements to the experimental permissions model, the ability to configure snapshots via a JSON config file, and three new events available in the net.createConnection flow.

Rafael Gonzaga

Redis With Wings — Dragonfly is a simple, performant, and cost-efficient in-memory data store, perfect as a cache or database for your high-performance Node apps. Dragonfly is fully compatible with Redis APIs but without the Redis management complexity.

Dragonfly sponsor

Introducing fsx: A Modern Filesystem API for JavaScript? — Filesystem APIs in JavaScript runtimes haven’t been great for a long time, says Nicholas, who explains how Node is itself the origin point of most modern approaches. fsx is his attempt to find a better way forward (and yes, there is code.)

Nicholas C. Zakas

Node v20.11.0 (LTS) Released — Meanwhile ‘the version of Node you should probably be using’ receives a variety of tweaks, with perhaps the most notable being the addition of import.meta.dirname and import.meta.filename which fulfil the same role as __dirname and __filename, but for our new, shiny ES module-based world.

Ulises Gascón

IN BRIEF:

Transcribing Audio on Cloudflare Workers with AssemblyAI — This is a little platform specific, but we’ve been experimenting with AssemblyAI for transcribing audio and it works very well.

Niels Swimberghe (AssemblyAI)

Preventing and Debugging Memory Leaks in Node — A primer on the practical basics.

Stanley Ulili

🛠 Code & Tools

Tinybench: A Tiny, Simple Benchmarking Library — No dependencies, but uses whatever precise timing capabilities are available (e.g. process.hrtime or peformance.now). You can then benchmark whatever functions you want, specify how long or how many times to benchmark for, and get a variety of stats in return.

Tinylibs

Fast-CSV 5.0: Stream-Based CSV Parser and Formatter — A long standing library that has been well maintained over the years and gets a big new release for 2024. Built ‘streams-first’ to avoid large memory demands when working with large datasets, it offers flexibility out of the box. GitHub repo.

C2FO

Debug Faster with Log Levels You Can Change on the Fly — More info means faster fixes. Learn how to instantly enable more logging in production without redeploying.

Prefab sponsor

⌨️🐈  wacat: Tests Your Webapp Against 'Cat Chaos' — Uses a ‘cat walking across your keyboard’ style approach to tormenting your webapps with random clicks and form submissions. (Fear not, no real cats are involved in the running of this tool.)

Mika Tapanainen

Automock: Improve and Optimize Your Unit Testing Process — A library designed for unit testing (alongside Jest, Sinon, or NestJS) that leans on TypeScript to generate mock objects, simplifying the process of testing by automatically mocking external dependencies of classes, and more. GitHub repo.

Omer Morad

web-worker 1.3: Consistent Web Workers for Browsers and Node — In Node, it works as a web-compatible Worker implementation atop worker_threads. In the browser, it’s an alias for Worker, so you can get a more consistent experience in isomorphic modules you create.

Jason Miller