---
title: "Node v20.6.0 released with .env support"
publication: "Node Weekly"
issue: 500
published_at: "2023-09-05"
canonical_url: "https://nodeweekly.com/issues/500"
---

Plus we prepare to say goodbye to Node 16 and look at how getting 'rusty' with Node can be a good thing. |        

#​500 — September 5, 2023 

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

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/node-js-v3/?utm_source=email&utm_medium=nodeweekly&utm_content=nodejsv3) 

![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/zbtmp9my6outdv3fzvde.jpg)](https://nodejs.org/en/blog/release/v20.6.0)  

[Node v20.6.0 (Current) Released](https://nodejs.org/en/blog/release/v20.6.0) — As we teased last week, the latest Node release includes all-new built-in support for setting environment variables via `.env` files, so you _may_ no longer have a need for [dotenv](https://www.npmjs.com/package/dotenv), depending on your use case. You can now also use [`import.meta.resolve`](https://github.com/nodejs/node/pull/49028) to get an absolute URL string to a specified module, plus there are some enhancements around module customization hooks. 

Juan José and the Node.js Team   

💡 If you just want to see a quick example of the `.env` feature in action, [Phil Nash comes to the rescue here](https://philna.sh/blog/2023/09/05/nodejs-supports-dotenv/) and also outlines some of the missing features.  [![\](https://copm.s3.amazonaws.com/7794eab8.jpg)](https://frontendmasters.com/courses/node-js-v3/?utm_source=email&utm_medium=nodeweekly&utm_content=nodejsv3) 

[A Modern Introduction to Node.js](https://frontendmasters.com/courses/node-js-v3/?utm_source=email&utm_medium=nodeweekly&utm_content=nodejsv3) — Take your JavaScript to server-side coding with CLI development, file I/O, async coding, CRUD operations, testing with Jest, and creating servers! 

Frontend Masters sponsor   

[My Node.js is a Bit Rusty..](https://gal.hagever.com/posts/my-node-js-is-a-bit-rusty) — The tale of how replacing a Node.js module with a native Rust module resulted in a 25x perf boost for Wix. Gal shows off the details of how it came about before concluding: _“If something is too slow, profile it first, then encapsulate it, and then—perhaps—consider rewriting it in Rust.”_ 

Gal Schlezinger   

Using Rust alongside Node is an increasingly popular technique. You can read more on the topic in [Exposing a Rust Library to Node with Napi-rs](https://johns.codes/blog/exposing-a-rust-library-to-node-with-napirs) or by watching [▶️ Creating Node.js libraries with Rust using Neon](https://www.youtube.com/watch?v=jkC4vik8__k).  

[Choosing the Best Node.js Docker Image](https://snyk.io/blog/choosing-the-best-node-js-docker-image/) — If you feel tempted to just throw `FROM node` into your Dockerfile, think again – there are other options to consider. _(An article we first posted in 2022 but which has had an August 2023 update.)_ 

Liran Tal (Snyk)   

_ASIDES:_ 

- Node.js v16 [goes end-of-life (EOL) next week,](https://nodejs.dev/en/about/releases/) which means all supported versions of Node will then support the Web Streams API and the Fetch API 🎉
- There are all sorts of [bizarrely named npm packages being published](https://www.bleepingcomputer.com/news/technology/yes-theres-an-npm-package-called-env-and-some-others-like-it/), including things like `@!-!-` and `--hepl`, in an attempt to break tools and find new security vulnerabilities.
- Would you like to [write GitHub Actions workflows in TypeScript](https://github.com/emmanuelnk/github-actions-workflow-ts) rather than YAML?   

[How to Use SSL/TLS Pinning in Node](https://snyk.io/blog/ssl-tls-pinning-node-js/) — SSL/TLS pinning adds an extra layer of security to connections between your apps and remote servers by storing certificates and keys for connections, thus reducing the potential for MITM attacks. 

Nwani Victory   

[How to Create a Dual-Mode Cross-Runtime Package](https://hexagon.56k.guru/posts/dual-mode-cross-runtime-packages/) — Specifically, supporting both ESM and CommonJS, and across runtimes like Node, Deno and the browser. 

Hexagon   

[Tracking Errors in a Node App](https://blog.appsignal.com/2023/08/30/tracking-errors-in-a-nodejs-application.html) — A look at how to track errors in a Node app in a “_convenient, automated, and safe way_”. 

Rishabh Rawat (AppSignal)   

[How to Use Headless Chrome in Serverless Functions with a 50MB Limit](https://www.stefanjudis.com/blog/how-to-use-headless-chrome-in-serverless-functions/) 
Stefan Judis   

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sluujjhowguscdarxueu.jpg)](https://github.com/leeoniya/uDSV/tree/main/bench#readme)  

[Benchmarking 24 CSV Parsing Approaches](https://github.com/leeoniya/uDSV/tree/main/bench#readme) — Certainly the most extensive Node.js CSV parsing benchmark I’ve seen. The author, himself the creator of the [μDSV CSV parsing library](https://github.com/leeoniya/uDSV), wanted to contest the common ‘lightning fast performance’ claims of other CSV parsing libaries. Unsurprisingly, μDSV tends to win in all but a couple of cases. 

Leon Sorokin   

[React Authentication — Without Complexity](https://userfront.com/tutorials/react-authentication?&utm_source=nodeweekly&utm_medium=newsletter&utm_campaign=sponsored_link&utm_content=react_authentication) — Userfront streamlines authentication & access control so engineers can focus on their core business. Read the docs now. 

Userfront sponsor   

[Marked 8.0: A Fast Markdown Parser and Compiler](https://github.com/markedjs/marked) — There's a [demo here](https://marked.js.org/demo/) to see it in action. 

Christopher Jeffrey   

[Better SQLite3 8.6: Fast and Simple SQLite3 Library](https://github.com/WiseLibs/better-sqlite3) — And 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 (why?), and worker thread support. v8.6 introduces [SQLite 3.43.0.](https://www.sqlite.org/releaselog/3_43_0.html) 

Joshua Wise      

📰 Classifieds   

📅 Next week, Semaphore presents [the online CI/CD Express Conference](https://semaphoreci.com/express), an online CI/CD conference for engineering leaders (and it's free). 

--- 

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. [Create a free profile now](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).    

📢 If you have a community related event, project, podcast, or similar, that would be of interest to _Node Weekly_ readers, let us know by replying to this email and we may be able to run a classified listing as above for free. We want to have a good mix of community and commercial listings.     

_QUICK RELEASES:_ 

- [Mongoose 7.5](https://github.com/Automattic/mongoose)
 ↳ MongoDB object modeling library.
- [Typegoose 11.5](https://github.com/typegoose/typegoose)
 ↳ Define Mongoose models using TS classes.
- [Node-OracleDB 6.1](https://medium.com/oracledevs/node-oracledb-6-1-for-oracle-db-brings-in-enhanced-advanced-queuing-support-and-more-afa4f373b107)
 ↳ Official Oracle Database driver for Node.
- [ExpressoTS 1.8](https://github.com/expressots/expressots)
 ↳ TypeScript framework for server-side apps.
- [Cloud Spanner for Node.js v7.0](https://github.com/googleapis/nodejs-spanner)
 ↳ Node client for Google's _Cloud Spanner._
- [OpenAI Node 4.4](https://github.com/openai/openai-node)
 ↳ Access OpenAI's APIs from Node.
- [node-mssql 9.3](https://github.com/tediousjs/node-mssql) – Microsoft SQL Server client.
- [pnpm 8.7.3](https://github.com/pnpm/pnpm/releases/tag/v8.7.3)    

**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|*).
