---
title: "Node.js 20 is fast(er)"
publication: "Node Weekly"
issue: 487
published_at: "2023-05-23"
canonical_url: "https://nodeweekly.com/issues/487"
---

Plus playing catchup with Node compatibility, RATs in the npm attic, and a way to write type-safe SQL? |        

#​487 — May 23, 2023 

[Read on the Web](https://nodeweekly.com/issues/487)  

Together with [![Retool logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_250,h_80/e_make_transparent/co_white,e_outline:7/xujzqhybod6rrw1uttra.png)](https://retool.com/reports/state-of-internal-tools-2023/?utm_medium=newsletter&utm_source=sponsor&utm_campaign=node) 

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/p8neiavvi3hacpoumwwi.jpg)](https://blog.rafaelgss.dev/state-of-nodejs-performance-2023)  

[The State of Node.js Performance in 2023](https://blog.rafaelgss.dev/state-of-nodejs-performance-2023) — Nearform’s Rafael Gonzaga reflects on the recent release of Node 20 and puts it through its paces against v18.16 and v16.20 with a few different benchmark suites running on a pretty typical EC2 instance. He goes into a _lot_ of depth that’s worth checking out, but if you haven’t got time: _“Node 20 is faster.”_😁 

Rafael Gonzaga   [![\](https://copm.s3.amazonaws.com/4e4b6af9.jpg)](https://retool.com/reports/state-of-internal-tools-2023/?utm_medium=newsletter&utm_source=sponsor&utm_campaign=node) 

[Companies Spend 4.5 Trillion Dollars on IT Annually](https://retool.com/reports/state-of-internal-tools-2023/?utm_medium=newsletter&utm_source=sponsor&utm_campaign=node) — Find out how they’re building internal tools to increase developer productivity & impact. Explore Retool’s 2023 State of Internal Tools report. 

Retool sponsor   

[Bun v0.6.0: Upping Its Node.js Compatibility Game](https://bun.sh/blog/bun-v0.6.0) — A ‘_biggest release yet_’ of the popular alternative JS runtime adds a built-in bundler and minifier, standalone executable generation, and more enhancements to its Node.js compatibility (something Bun boasts as a feature as a ‘drop-in replacement’, as opposed to Deno where it’s more of a late addition). 

Jarred Sumner   

[How to Build Leaner Node Container Images with UBI and Podman](https://developers.redhat.com/articles/2023/05/17/build-lean-nodejs-container-images-ubi-and-podman) — UBI being Red Hat’s _Universal Base Images._ 

Evan Shortiss   

**IN BRIEF:** 

- It's not just Bun and Deno trying to offer more Node.js support, but [Cloudflare Workers now has support for three more Node APIs](https://blog.cloudflare.com/workers-node-js-apis-stream-path/) too: `node:path`, the Streams API, and StringDecoder.
- The folks at ReversingLabs wrote about [how their researchers found some 'RATs' hiding in the npm attic](https://www.reversinglabs.com/blog/rats-found-hiding-in-the-npm-attic) – specifically, the TurkoRat 'infostealer.'
- [Fusion](https://fusionssg.com/) is a promising looking Node.js-based static site generator sent in by a Node Weekly reader. We'll cover it properly when it hits 1.0.   

[A Guide to Visual Regression Testing with Playwright](https://lost-pixel.com/blog/post/playwright-visual-regression-testing) — The Playwright browser control library can form the basis of an end-to-end testing mechanism all written in JavaScript, and comparing the visual output of tests can show where things are going wrong. 

Dima Ivashchuk (Lost Pixel)   

[Benchmarking a 'Compiled' Node vs Bun App](https://decode.sh/benchmarking-node-js-vs-bun) — The latest release of [Bun](https://bun.sh/blog/bun-v0.6.0) (also above) has the ability to compile apps into a single executable (something [Node 20 added too](https://nodejs.org/api/single-executable-applications.html), though the author uses Vercel’s [pkg](https://www.npmjs.com/package/pkg) instead). This isn’t a particularly insightful benchmark, but does provide a data point. 

Decode   

[Server-Sent Events with Node](https://blog.endpts.io/server-sent-events-with-nodejs) — Server-Sent Events (SSE) enable a web server to send real-time updates to the client but without the two-way connection overhead of WebSockets. 

endpts Team    

🛠 Code & Tools  

[Better SQLite3 8.4: Fast and Simple SQLite3 Library](https://github.com/WiseLibs/better-sqlite3) — With [good docs too](https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md). Supports a lot of SQLite specific functionality, has a _synchronous_ API that boasts better concurrency than an async one ([?](https://github.com/WiseLibs/better-sqlite3#why-should-i-use-this-instead-of-node-sqlite3)) and worker thread support. v8.4 updates it to [SQLite v3.42.0](https://www.sqlite.org/releaselog/3_42_0.html) standard. 

Joshua Wise   

[❤️ Postgres](https://crunchybridge.com/start?utm_source=cpnd-lnk-0523) — You need a database provider that loves Postgres as much as you do. Fully managed on public cloud with amazing support. 

Crunchy Bridge sponsor   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pwxhlgiqh5jafb3s9iur.jpg)](https://ts-sql-query.readthedocs.io/en/stable/)  

[ts-sql-query: Type-Safe SQL Query Builder](https://ts-sql-query.readthedocs.io/en/stable/) — Want to build dynamic SQL queries in a type-safe way with TypeScript verifying queries? This is for you. Supports numerous SQL-based database systems and _isn’t_ an ORM itself. _(Comes from a direct recommendation from a reader who uses it.)_ 

Juan Luis Paz Rojas   

[Joplin: An Open Source Note Taking and To-Do System](https://joplinapp.org/) — Essentially an open source _Evernote_, complete with numerous client apps (desktop and mobile) and a server supporting synchronization via cloud services. [GitHub repo.](https://github.com/laurent22/joplin) 

Laurent Cozic   

[HyperExpress 6.7: High Performance Server Powered by uWebSockets.js](https://github.com/kartikk221/hyper-express) — Aims to be a simple yet performant HTTP and WebSocket Server. 

Kartik    

💻 Jobs  

[Find Tech Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

- [Mongoose 7.2](https://github.com/Automattic/mongoose)
 ↳ MongoDB object modelling library.
- [Nodejs SQL Parser 4.7](https://github.com/taozhi8833998/node-sql-parser)
 ↳ Parse SQL into syntax trees.
- [Eta (η) 2.2](https://github.com/eta-dev/eta)
 ↳ Embedded JS template engine.
- [Ts.ED 7.29](https://github.com/tsedio/tsed)
 ↳ TypeScript framework on top of Express.
- [zip-it-and-ship-it 9.6](https://github.com/netlify/zip-it-and-ship-it)
 ↳ Prepare Node Lambda functions for deployment.
- [AdminJS 7.0.4](https://github.com/SoftwareBrothers/adminjs)
 ↳ Admin panel for Node-based apps.
- [rimraf 5.0.1](https://github.com/isaacs/rimraf)
 ↳ `rm -rf` util for Node.
- [node-sass 9.0](https://github.com/sass/node-sass)
 ↳ Still deprecated, but adds Node.js 20 support.
- [Axios Cache Interceptor 1.1](https://github.com/arthurfiorette/axios-cache-interceptor)    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address.](https://nodeweekly.com/edit_subscription/*|UID|*)
