Awesome
Awesome Node ESM
A curated list of Node.js modules with native ESM support and resources about ES Modules in Node.js.
Contents
Articles
- ECMAScript Modules Node.js docs
- How to Use ESM on the Web and Node.js
- Using ES modules natively in Node.js
- ES Modules in Node today
- Super Simple Start to ESModules in Node.js
Tools
- 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
- preact-render-to-string - universal rendering for Preact: render JSX and Preact components to HTML.
- hyperapp-render - render Hyperapp to an HTML string with SSR and Node.js streaming support.
- hypermdx - Markdown enhanced with Hyperapp
- streamdown - stream markdown to HTML
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
- istextorbinary - Check if a file is text or binary.
- @tinyhttp/dotenv - A rewrite of dotenv module.
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
Performance
- 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
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.