One million Fastify downloads per month and other Adventures in Nodeland - Issue #23





Subscribe to our newsletter

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Adventures in Nodeland will receive your email address.

Matteo Collina
Matteo Collina
Hi Folks!
Here is a new edition of Adventures in Nodeland packed with news and articles… the biggest one is that Fastify crossed one million download per month in July!

We crossed one million downloads per month and reached 20k stars! 🤩
It looks like you are enjoying building your APIs and websites with us!
Chart showing Fastify monthly download numbers from 0 in 2016 to 1 million in July 2021
Chart showing Fastify monthly download numbers from 0 in 2016 to 1 million in July 2021
I’m well aware that monthly downloads number on NPM are a lousy metric and it does not reflect actual end users, however it’s a good gauge for the massive activity that we are seeing in the issue tracker or Discord chat. Thanks for trusting us!
I’m also proud to announce the release of Fastify v3.20.2!
Release v3.20.2 · fastify/fastify · GitHub
New Video
Multithreaded Logging with Pino by Matteo Collina - GitNation
In June I delivered a talk to describe the new implementation of the “transport” concept in pino: I wrote about its evolution every now and then in this newsletter. I recommend to watch the talk, it’s full of details on how worker_threads enable new patterns for Node.js
New Module!
As part of the new pino.transport() feature, we support creating one transport by processing an async iterator. However we quickly found out that it was extremely easy to process once line at a time with an async iterator… but it created a significant bottleneck! How could we process them in parallel? The new “hwp” module serve that function and more, allowing parallel processing of elements in an async iterator.. up to a limit called highwatermark!
GitHub - mcollina/hwp
fetch() and more fetch()
It is no secret that the most sought-after feature in Node.js is the support for fetch(). We are indeed working on it: we shipped experimental support for fetch, note that it would only work in Node v16 as it relies on the experimental WHATWG stream support that landed in core. Does it all sound very experimental? Yes indeed and we are looking for feedback, check it out:
Release fetch · nodejs/undici
Node.js fixes
In the last few weeks I worked on a couple of changes for Node.js. The first I’m linking is a change to how we manage stdout and stderr: you can now call process.stdout.destroy() and the stream will be automatically “undestroyed”, making console.log() and others still working as expected.
The second change was part of the security release of the 11th of August and it’s related to the rejectUnauthorized options for TLS connections. The client would not validate the certificate if the option was set to undefined. The docs always called for strict validation of “!== false”, while we used a falsy value: undefined, null, empty strings and others were all evaluated as false. This is no more.
tls: validate "rejectUnauthorized: undefined" · nodejs/node@6c7fff6 · GitHub
Read up, interesting articles
HTTP/3 From A To Z: Core Concepts (Part 1) — Smashing Magazine
That’s all for this already long issue! I hope you liked it!
Did you enjoy this issue? Yes No
Matteo Collina
Matteo Collina @matteocollina

I write about my journey as a core contributor of Node.js, as an author and a maintainer of many modules - including Fastify and Pino. In addition, I speak at conferences, and I will add links to all my talks in case you missed one.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.