---
title: "Performance with Rust-y Node addons"
publication: "Node Weekly"
issue: 483
published_at: "2023-04-25"
canonical_url: "https://nodeweekly.com/issues/483"
---

Plus building a real gRPC microservice with Node and Connect. |        

#​483 — April 25, 2023 

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

Together with [![Crunchydata\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_430,h_100/e_make_transparent/co_white,e_outline:7/xyflkz7n00elwtgja9ne.png)](https://www.crunchydata.com/case-studies/carerev?utm_source=nd-prim-0425) 

![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/eirinfidkiygxcdxqgkb.jpg)](https://www.alxolr.com/articles/how-to-process-a-csv-file-five-times-faster-in-node-js-with-rust-and-napi-rs)  

[How to Process a CSV File Faster in Node with Rust and NAPI-RS](https://www.alxolr.com/articles/how-to-process-a-csv-file-five-times-faster-in-node-js-with-rust-and-napi-rs) — [NAPI-RS](https://napi.rs/) is a framework for building pre-compiled Node.js addons in Rust. This post looks at using it for practical ends, namely being able to process CSV data with high performance. 

Alexandru Olaru   

[Building a Modern gRPC Microservice with Node and Connect](https://blog.dopt.com/building-a-modern-grpc-powered-microservice) — An interesting tutorial that digs into how the engineers at Dopt built a gRPC-powered internal microservice using Node and the [Connect](https://connect.build/) suite of gRPC libraries. It's great to see a tutorial built off of a real, production-level experience. 

Joe McKenney   [![\](https://copm.s3.amazonaws.com/c9e48a51.png)](https://www.crunchydata.com/case-studies/carerev?utm_source=nd-prim-0425) 

[The Postgres Experience You Always Wanted](https://www.crunchydata.com/case-studies/carerev?utm_source=nd-prim-0425) — “What a different support experience Crunchy is. Every support ticket is valuable. We’re encouraged to ask questions. We’re able to do so much more working with a partner who cares as much about data as we do." Rob Sullivan, CareRev. 

Crunchy Bridge sponsor   

🐘 As an aside, if you're a Postgres user, [Postgres Weekly](https://postgresweekly.com/) is our sister Postgres-focused newsletter :-)  

[Dissecting npm Malware: Five Packages and Their Evil Install Scripts](https://blog.sandworm.dev/dissecting-npm-malware-five-packages-and-their-evil-install-scripts) — npm related security continues to be a big topic _(hold on to your hats, that's what the _next_ item is about as well 😆)_ and a common security vector is the install script that’s run when you install a package. 

Gabi Dobocan (Sandworm)   

[GitHub Introduces npm Package Provenance](https://github.blog/2023-04-19-introducing-npm-package-provenance/) — As stewards of the official npm registry, GitHub is keen to improve its security. Now, if you build npm packages through GitHub Actions, you can publish the _provenance_ of your package which gives users a way to verify which repo a package was built from (and how). 

DeHamer and Harrison (GitHub)   

**IN BRIEF:** 

- [NodeSource and GitHub are partnering up](https://nodesource.com/blog/strengthening-nodejs-security) to integrate NodeSource's certified modules features into GitHub Actions.
- We covered Node.js 20's release last week, but if you want to dig deeper into the new (experimental) permissions model, [here are the full docs.](https://nodejs.org/api/permissions.html#permissions)   

[How Postgres Triggers Can Simplify Your Backend Development](https://themythicalengineer.com/how-postgres-triggers-can-simplify-your-backend-development.html) — A trigger is a special type of function that automatically executes in response to a specific database event, such as a table insertion, deletion, or update, which allows you to offload certain logic to the database itself. 

The Mythical Engineer   

[Building and Dockerizing a Node App with Stateless Architecture](https://www.smashingmagazine.com/2023/04/building-dockerizing-nodejs-app-stateless-architecture-kinsta/) — Then deploying it on the Kinsta platform. 

Smashing Magazine   

[How to Install Node.js 20 on Ubuntu 20.04 LTS](https://joshtronic.com/2023/04/23/how-to-install-nodejs-20-on-ubuntu-2004-lts/) 
Josh Sherman    

🛠 Code & Tools  

[Linker.js: Access C, C++, Rust and Go Libraries from Node](https://github.com/bitair-org/linker.js) — A dynamic C-shared library linker that provides an interface for accessing any C-shared libraries (which all of C, C++, Rust and Go can produce). Linux only for now. 

Bitair   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/toegbhtjrt4uo9qdkukj.jpg)](https://console-ninja.com?utm_source=cooperpress&utm_medium=nodeweekly&utm_content=nodeweekly)  

[❤️ Loving console.log Is Easy, but Hate 😡 Losing Context to View Messy Output](https://console-ninja.com?utm_source=cooperpress&utm_medium=nodeweekly&utm_content=nodeweekly) — Developer productivity tools [Wallaby.js](https://wallabyjs.com?utm_source=cooperpress&utm_medium=nodeweekly&utm_content=nodeweekly), [Quokka.js](https://quokkajs.com?utm_source=cooperpress&utm_medium=nodeweekly&utm_content=nodeweekly), and [Console Ninja](https://console-ninja.com?utm_source=cooperpress&utm_medium=nodeweekly&utm_content=nodeweekly) show `console.log` values and errors right next to your code. 

Wallaby.js sponsor   

[SuperTest: HTTP Assertions Made Easy](https://github.com/ladjs/supertest) — Got an HTTP API to test? SuperTest provides a fluent API for chaining together requests and expectations. Uses [superagent](https://github.com/ladjs/superagent) behind the scenes and works with HTTP/2 too. 

TJ Holowaychuk et al.   

[chalk-animation: Colorful Animations in Terminal Output](https://github.com/bokub/chalk-animation) — Provides a variety of different effects for your text, including a rainbow effect, pulsing, and glitchiness. 

Boris K   

**QUICK RELEASES:** 

- [p-map 6.0](https://github.com/sindresorhus/p-map)
 ↳ Map over promises concurrently.
- [lowdb 6.0](https://github.com/typicode/lowdb)
 ↳ Simple to use local JSON database.
- [npm-publish 2.0](https://github.com/JS-DevTools/npm-publish/releases/tag/v2.0.0)
 ↳ GitHub Action to publish to NPM.
- [DOCX 8.0.3](https://github.com/dolanmiu/docx)
 ↳ Work with `.docx` files from JavaScript.    

💻 Jobs  

[Full Stack JavaScript Engineer @ Emerging Cybersecurity Startup](https://defendify.breezy.hr/p/b07e57b21e02-saas-software-engineer) — Small team/big results. Fun + flexible + always interesting. Come build our award-winning, all-in-one cybersecurity platform. 
Defendify   

[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      

- [file-type 18.3](https://github.com/sindresorhus/file-type)
 ↳ Detect the file type of a Buffer/Uint8Array.
- [xmlbuilder2 3.1](https://github.com/oozcitak/xmlbuilder2)
 ↳ XML builder library.
- [grammY 1.16](https://github.com/grammyjs/grammY)
 ↳ Telegram bot framework.
- [Mongoose 7.0.5](https://github.com/Automattic/mongoose)
 ↳ MongoDB object modeling approach.
- [Prisma 4.13](https://github.com/prisma/prisma/releases/tag/4.13.0)    

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