#370 — January 7, 2021

Read on the Web

Node Weekly

napi-rs: A Minimal Library for Building Node Addons in RustNeon appeared in 2019 as a way to ‘electrify your Node with the power of Rust’ (Rust being an increasingly popular, high performance, safety-first systems language) and napi-rs gives us more of the same with a slightly different take. It supports all recent Node versions, has Apple Silicon support out of the box, and is easy to get started with.


The January 2021 Node Security Releases — As promised in December, we have new versions of Node all round, including Node 15.5.1, 14.15.4 12.20.1, and 10.23.1. Why? A bug in the TLS implementation mostly, but also a HTTP request header smuggling bug – neither of which you want in your production environments.

Michael Dawson

Spend Less Time Debugging and More Time Building — Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues. Continually track N+1 database queries, sources of memory bloat, performance abnormalities, and more with Scout APM.

Scout APM sponsor

Meow: A Straightforward CLI App Helper — Not a new project but one of Sindre’s projects I hadn’t seen before. It’s simple and straightforward. You define flags, help text, and other features in a single object and it handles all the processing for you.

Sindre Sorhus

npm 7.3.0 (and 7.2.0) Released — Two new npm releases dropped in just before Christmas. npm config now supports getting and setting multiple values at once and npm rebuild now accepts paths as an argument.

The npm Blog

💻 Jobs

Full Stack Senior JavaScript/Node.js Developer - Video Platform — Melbourne based, remote friendly role, working on exciting AI powered video creation SAAS product. Apply here.


Find Your Next Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.


📗 Tutorials and Stories

Experimenting Producing AVIF Images from NodeAVIF is a new image format that’s not widely supported yet, but with widespread support on the way. Given its many advantages, though, developers are keen to use it. The Sharp module recently added AVIF support too and here’s how it operates.

James Milner

The Four 'Creational' Design Patterns in Node.js You Should Know — Design patterns are used in numerous scenarios such as for handling object interactions, object design, and also how objects are created which is the focus here. Singleton, Factory, Builder, and Prototype patterns are covered.

Catalin Pit

How We Built Scalable Spatial Indexing in CockroachDB — Support for spatial data was the most requested feature in the history of CockroachDB. Read about how we built it.

Cockroach Labs sponsor

Comparing Emilua to Node.js — Emilua is sort of a Node-a-like for the Lua language. I’m unlikely to use it, but it’s a neat look at a project I was unaware of. Git repo.


▶  How to Cache an API Endpoint with Redis in Node — A rough and ready screen recording that may be helpful to some.


🛠 Code and Tools

Pino 6.9.0: A Fast 'Very Low Overhead' JSON Logger — There are code samples for using it with Fastify, Express, Hapi, Koa, and more.


CandyMail: Node-Powered Email Automation System — If your app needs email sequences based on user activity, say, this is for you and might save you having to pay for an expensive email automation system. GitHub repo.


Dynamoose 2.5.0: A Modeling Tool for Amazon's DynamoDB — As Mongoose is to MongoDB, Dynamoose hopes to be to Amazon’s DynamoDB.


np 7.2.0: A Better npm publish — Makes the process of publishing a package just a little smoother with an interactive UI, checks that you’re publishing the right thing, runs tests, pushes commits and tags, and more.

Sindre Sorhus

Video for Your Node App That Streams Beautifully, Everywhere

Mux sponsor

Google Cloud Vision API Node.js Client v2.2.0Google Cloud Vision API is worth a try if you want to do things like face or landmark recognition, OCR, explicit content tagging, etc. It can now also do text detection and return a confidence score.


pigpio 3.3.0: Fast GPIO, PWM, Servo Control, and More on the Raspberry Pi — One for those of you tinkering with Node on the Raspberry Pi. It wraps the pigpio C library and supports Node 10 through 15.

Brian Cooke

fkill-cli 6.1.0: A Cross-Platform Way to Kill Processes

Sindre Sorhus

node-ble 1.4: A Pure Node.js Bluetooth Low Energy (BLE) Library — Aimed at Linux users and works via D-Bus.

Christian Vadalà

OpenMTP: An Advanced Android File Transfer Application for macOS — An interesting example of a full-featured desktop all that uses numerous JavaScript technologies including Node, Electron, and React. Certainly looks better than the official Android transfer app I used to use. Official homepage.

Ganesh Rathinavel

A Port of Google's V8 Engine to RISC-V — An MVP of a RISC-V64 port of the V8 JavaScript engine. RISC-V is a royalty free, open instruction set architecture that’s still relatively little used but of increasing interest in a world looking more at RISC-oriented systems (such as Arm-based ones).

Wei Wu and Brice Dobry