---
title: "Milo: A new HTTP parser for Node?"
publication: "Node Weekly"
issue: 510
published_at: "2023-11-14"
canonical_url: "https://nodeweekly.com/issues/510"
---

Plus can Bun eat Node's lunch? |        

#​510 — November 14, 2023 

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

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/javascript-cpu-vm/?utm_source=email&utm_medium=nodeweekly&utm_content=javascriptcpu)   

![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/jw4b2gsc7w0rpwqn2rxz.jpg)](https://github.com/lirantal/nodejs-cli-apps-best-practices)  

[36 Node CLI App Best Practices](https://github.com/lirantal/nodejs-cli-apps-best-practices) — From the creator of several Node-based CLI tools comes this helpful collection of best practices for building _“successful, empathic and user-friendly”_ CLI tools using Node, plus an appendix [rounding up popular CLI framework options.](https://github.com/lirantal/nodejs-cli-apps-best-practices#101-cli-frameworks-table) 

Liran Tal   

👍 Note: There's a 'last update' badge saying 2021, but it's incorrect – there was a big update this month 😄  

▶[Talks from the Node.js Collab Summit 2023](https://www.youtube.com/playlist?list=PLyspMSh4XhLMSx9Bcdnt1aU1WdRnk3mZy#collabsummit) — If you want to stay up to date with the latest discussions _within_ the Node project, here are the videos from the latest Node.js Collab Summit. For example, have you heard [of Milo?](https://www.youtube.com/watch?v=KsjdrOjpycE&list=PLyspMSh4XhLMSx9Bcdnt1aU1WdRnk3mZy&index=10) It's a new Rust-powered HTTP parser Paolo Insogna is working on for Node. 

OpenJS Foundation   [![\](https://copm.s3.amazonaws.com/816cde5e.png)](https://frontendmasters.com/courses/javascript-cpu-vm/?utm_source=email&utm_medium=nodeweekly&utm_content=javascriptcpu) 

[Bare Metal JavaScript: The JavaScript Virtual Machine with Miško Hevery](https://frontendmasters.com/courses/javascript-cpu-vm/?utm_source=email&utm_medium=nodeweekly&utm_content=javascriptcpu) — Learn how high-level JavaScript turns into low-level CPU instructions. Build up your mental model of JavaScript's performance characteristics through understanding the JavaScript Virtual machine under the hood! 

Frontend Masters sponsor   

[Can Bun Eat Node.js’s Lunch?](https://labzero.com/blog/can-bun-eat-node-js-s-lunch-testing-the-trendy-toolkit) — An experiment in migrating a codebase (a restaurant voting app called _Lunch_) from Node over to Bun and seeing how it fares. They’re impressed but found it to be _“not production-ready as I’m still encountering segmentation faults for common tasks.”_ 

Jeffrey Carl Faden   

_IN BRIEF:_ 

- Erick Wendel of the Node core team reminds us that Node v20.5 and up support [horizontally partitioning/sharding your tests.](https://twitter.com/erickwendel_/status/1724075830400164215) Essentially you run with `--test-shard` and pass in the number of shards in total and which shard to run.
- [Prettier 3.1](https://prettier.io/blog/2023/11/13/3.1.0), the opinionated code formatter, has been released with support for the new control flow syntax in [Angular 17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) (released last week) and a new, experimental formatting option for ternary expressions (as in `x ? y : z`).
- Node TSC member Yagiz Nizipli is suggesting [using Biome for code formatting](https://github.com/nodejs/node/pull/50672) since ESLint has [deprecated its core formatting rules](https://eslint.org/blog/2023/10/deprecating-formatting-rules/).
- If you use Amazon SQS, consider [updating your AWS SDK to reduce latency](https://aws.amazon.com/blogs/aws/new-for-amazon-sqs-update-the-aws-sdk-to-reduce-latency/) – AWS has rolled out a new, more efficient JSON-based protocol.   

[Secure Code Review Tips to Defend Against Vulnerable Node Code](https://www.nodejs-security.com/blog/secure-code-review-tips-to-defend-against-vulnerable-nodejs-code) — How do you identify vulnerable code patterns? Can you spot insufficient input validation? Enhance your Node development security with this guide to secure code review. 

Liran Tal   

[Free Course: Introduction to Temporal Cloud](https://t.mp/3QqrX3l) — Check out our new course on the role and features of Temporal Cloud, designed for new and experienced users alike. 

Temporal Technologies sponsor   

[Deploying Node Apps on Vultr with PM2](https://developer.mozilla.org/en-US/blog/deploying-node-js-applications-with-pm2-on-vultr/) — I hadn’t noticed MDN was running sponsored articles till now, but they seem to do a good job maintaining the quality. The good thing about _this_ article is you can use it with any VPS, not just those on Vultr. 

Vultr / MDN   

[The Effects of Not Maintaining Consistency with DynamoDB](https://advancedweb.hu/the-effects-of-not-maintaining-consistency-with-dynamodb/) 
Tamás Sallai   

[`git rebase`: What Can Go Wrong?](https://jvns.ca/blog/2023/11/06/rebasing-what-can-go-wrong-/) 
Julia Evans   

[How to Use Timeouts in Node](https://blog.appsignal.com/2023/11/08/how-to-use-timeouts-in-nodejs.html) 
Antonello Zanini   

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nriwj4rjvymbcwfearvz.jpg)](https://github.com/ehmicky/wild-wild-path)  

[Wild Wild Path v5: Object Property Paths with Wildcards and Regexps](https://github.com/ehmicky/wild-wild-path) — A 'wild' way to access properties in objects (which can be deeply nested) by way of string based queries that support wildcards and regexes. [The examples](https://github.com/ehmicky/wild-wild-path#listtarget-query-options) really help to get the idea over. 

ehmicky   

[Globby 14.0: User-Friendly Glob Matching](https://github.com/sindresorhus/globby) — Give it an array of globs and it returns an array of matching paths. It even supports negations and `.gitignore`. 

Sindre Sorhus      

📰 Classifieds   

Workshop: Learn how to build apps with Svelte and SvelteKit in our [remote workshop](https://svelte-sveltekit-workshop.mainmatter.com/) – afternoons (CET) of Jan 30th to Feb 1st – only €350. 

--- 

📞 Calling all devs! [Sentry Launch Week](https://sentry.io/events/launch-week/?utm_source=nodeweekly&utm_medium=paid-community&utm_campaign=general-fy24q3-launchweek&utm_content=newsletter-launchweek-register) is live. Tune in for new products, demos, and discussions with experts from the community. [Join us](https://sentry.io/events/launch-week/?utm_source=nodeweekly&utm_medium=paid-community&utm_campaign=general-fy24q3-launchweek&utm_content=newsletter-launchweek-register).      

[cRonstrue: Library to Convert Cron Expressions into Natural Language](https://github.com/bradymholt/cRonstrue) — Not just English either - it supports about [thirty different locales.](https://github.com/bradymholt/cRonstrue#supported-locales) There’s also [an online demo.](https://bradymholt.github.io/cRonstrue/) 

Brady Holt   

[HyperExpress 6.14: High Performance Server Powered by uWebSockets.js](https://github.com/kartikk221/hyper-express) — Despite the name, it’s nothing to do with Express.js, though it does have some limited API compatibility. The main draw is for folks who want to serve up WebSockets quickly. 

Kartik   

[nve 17: Run Things With a Specific Node.js Version](https://github.com/ehmicky/nve) — Execute a file, command, or REPL using a specific version (or multiple versions) of Node. For example, you could run `npm test` over multiple versions at once, though note that the _minimum_ version is now Node v18.18.0. 

ehmicky   

[wait-on 7.1: A CLI and Node Library to Wait for Ports, Files, Sockets, etc.](https://github.com/jeffbski/wait-on) — For when you need to wait until files, ports, sockets, and similar resources become available (or the opposite). 

Jeff Barczewski   

- [tsx 4.x](https://github.com/privatenumber/tsx) – Node.js enhanced to run TypeScript & ESM.
- [Marked 10.0](https://github.com/markedjs/marked) – Markdown parser and compiler.
- [marked-terminal 6.1](https://github.com/mikaelbr/marked-terminal) – A renderer for Marked (above) for printing Markdown on the terminal.
- [getmac 6.0](https://github.com/bevry/getmac) – Get the MAC address of the machine you're on.
- [express-openapi-validator 5.1](https://github.com/cdimascio/express-openapi-validator) – Auto-validate API requests and responses using Express and an OpenAPI 3.x spec.
- [Nightwatch 3.3](https://github.com/nightwatchjs/nightwatch) – Integrated end-to-end testing framework.
- [Middy 4.7](https://github.com/middyjs/middy) – Node middleware engine for AWS Lambda.    

**_NOTABLE QUOTABLE_**  

“I'm not a great programmer. I'm just a good programmer with great habits.” 

___
Kent Beck     

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