Awesome Node ESM

A curated list of Node.js modules with native ESM support and
resources about ES Modules in Node.js.
Contents
Articles
- esbuild - an
extremely fast JavaScript bundler and minifier.
- tsup - bundle your
TypeScript library with no config, powered by esbuild.
- rollup -
next-generation ES Module bundler.
- dual-publish -
publish JS project as dual ES modules and CommonJS package to npm
- cjstoesm - tool
that can transform CommonJS to ESM
- esbuild-node-loader
- transpile TypeScript to ESM with Node.js loader.
- tsm - TypeScript Module
Loader
Packages
Web frameworks
- tinyhttp -
tiny web framework as a replacement of Express.
- polka (alpha only) -
micro web server so fast, it’ll make you dance!
- koa - expressive
middleware for node.js using ES2017 async functions
HTTP
HTTP Clients
- node-fetch -
light-weight module that brings window.fetch to Node.js
- httpie - a Node.js
HTTP client as easy as pie!
API Clients
- kitsu - simple,
lightweight & framework agnostic JSON:API client
- twitter-lite
- tiny, full-featured, flexible client / server library for the Twitter
API
WebSocket
- sockette - tiny
wrapper around WebSocket that will automatically reconnect if the
connection is lost!
Middleware
- milliparsec -
tiniest Node.js body parser ever
- sirv - an optimized
middleware & CLI application for serving static files~!
- tinyws - tiny
WebSocket middleware for Node.js
- malibu -
framework-agnostic CSRF middleware for modern Node.js
- lru-send -
LRU-based caching middleware for Node.js
Template engines
- eta - embedded JS
template engine for Node, Deno, and the browser
- tempura - A light,
crispy, and delicious template engine
SSR
Databases
- rxdb - a realtime
Database for JavaScript Applications.
Logging
- logtown - simple
Logging Facade for JavaScript.
- oddlog -
high-performance payload focused logging library for node.js.
- diary -
zero-dependency, fast logging library for both Node and Browser.
- roarr - JSON logger for
Node.js and browser.
Testing
- uvu - an extremely fast
and lightweight test runner for Node.js and the browser.
- oletus - minimal
ECMAScript Module test runner
- hanbi - a small
javascript library for stubbing and spying on methods/functions.
- wirepig - mock
HTTP and TCP dependencies with real sockets.
CLI
Argument parsing
- yargs - Command-line
parser that automatically generates an elegant user-interface.
Colors
- colorette -
color your terminal using pure idiomatic JavaScript.
- kleur - the fastest
Node.js library for formatting terminal text with ANSI colors~!
Date
- dayjs - 2KB immutable
date library alternative to Moment.js with the same modern API
- tinydate - a tiny
(349B) reusable date formatter.
- tempe - Featherlight
(< 2kB) helper for Javascript date formatting
- light-date -
blazing fast & lightweight (157 bytes) date formatting for Node.js
and the browser.
File system
Utility
- dequal - tiny (304B
to 489B) utility to check for deep equality
- klona - tiny (240B to
507B) and fast utility to “deep clone” Objects, Arrays, Dates, RegExps,
and more!
- dlv - Safe deep
property access in 120 bytes. x = dlv(obj, ‘a.b.x’)
Random
- uuid - tiny (230B),
fast, and cryptographically secure UUID (V4) generator for Node and the
browser
- nanoid - Tiny, secure,
URL-friendly, unique string ID generator.
Parsing
- snarkdown - a
snarky 1kb Markdown parser written in JavaScript
Compression
- anzip - simple async
unzip library for Node.js
- piscina - a fast,
efficient Node.js Worker Thread Pool implementation
- nanodelay - a tiny (25
bytes) Promise wrapper around setTimeout
AST
- acorn - a small,
fast, JavaScript-based JavaScript parser
Functional programming
- immutable -
Immutable data collections.
- ramda - practical
functional Javascript.
- smoldash
- A tiny lodash alternative built for the modern web
- deepdash - tree
traversal library written in Underscore/Lodash fashion
Math
- mathjs - An
extensive math library.
Ethereum
- get-ens - Get
text records of an ENS address
- send-tx -
Sign & send Ethereum transactions
Other
- turf - a modular
geospatial engine written in JavaScript
- cashify -
lightweight currency conversion library, successor of money.js
- astro - build
faster websites with the island architecture
- transliterate -
convert Unicode characters to Latin characters using
transliteration
- emittery -
simple and modern async event emitter.