Files
awesome-awesomeness/html/nodeesm.html
2025-07-18 23:13:11 +02:00

278 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-node-esm">Awesome Node ESM</h1>
<p><a href="https://awesome.re"><img
src="https://awesome.re/badge-flat.svg" alt="Awesome" /></a></p>
<p>A curated list of Node.js modules with native ESM support and
resources about ES Modules in Node.js.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#articles">Articles</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#packages">Packages</a>
<ul>
<li><a href="#web-frameworks">Web frameworks</a></li>
<li><a href="#http">HTTP</a></li>
<li><a href="#websocket">WebSocket</a></li>
<li><a href="#template-engines">Template engines</a></li>
<li><a href="#ssr">SSR</a></li>
<li><a href="#databases">Databases</a></li>
<li><a href="#logging">Logging</a></li>
<li><a href="#testing">Testing</a></li>
<li><a href="#cli">CLI</a></li>
<li><a href="#date">Date</a></li>
<li><a href="#file-system">File system</a></li>
<li><a href="#utility">Utility</a> (value manipulations)</li>
<li><a href="#random">Random</a></li>
<li><a href="#parsing">Parsing</a></li>
<li><a href="#compression">Compression</a></li>
<li><a href="#performance">Performance</a></li>
<li><a href="#ast">AST</a></li>
<li><a href="#functional-programming">Functional programming</a></li>
<li><a href="#math">Math</a></li>
<li><a href="#ethereum">Ethereum</a></li>
<li><a href="#other">Other</a></li>
</ul></li>
</ul>
<h2 id="articles">Articles</h2>
<ul>
<li><a href="https://nodejs.org/api/esm.html">ECMAScript Modules Node.js
docs</a></li>
<li><a href="https://byteofdev.com/posts/how-to-use-esm/">How to Use ESM
on the Web and Node.js</a></li>
<li><a href="https://2ality.com/2017/09/native-esm-node.html">Using ES
modules natively in Node.js</a></li>
<li><a href="https://blog.logrocket.com/es-modules-in-node-today">ES
Modules in Node today</a></li>
<li><a
href="https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-node-js/">Super
Simple Start to ESModules in Node.js</a></li>
</ul>
<h2 id="tools">Tools</h2>
<ul>
<li><a href="https://github.com/evanw/esbuild">esbuild</a> - an
extremely fast JavaScript bundler and minifier.</li>
<li><a href="https://github.com/egoist/tsup">tsup</a> - bundle your
TypeScript library with no config, powered by esbuild.</li>
<li><a href="https://github.com/rollup/rollup">rollup</a> -
next-generation ES Module bundler.</li>
<li><a href="https://github.com/ai/dual-publish">dual-publish</a> -
publish JS project as dual ES modules and CommonJS package to npm</li>
<li><a href="https://github.com/wessberg/cjstoesm">cjstoesm</a> - tool
that can transform CommonJS to ESM</li>
<li><a
href="https://github.com/antfu/esbuild-node-loader">esbuild-node-loader</a>
- transpile TypeScript to ESM with Node.js loader.</li>
<li><a href="https://github.com/lukeed/tsm">tsm</a> - TypeScript Module
Loader</li>
</ul>
<h2 id="packages">Packages</h2>
<h3 id="web-frameworks">Web frameworks</h3>
<ul>
<li><a href="https://github.com/talentlessguy/tinyhttp">tinyhttp</a> -
tiny web framework as a replacement of Express.</li>
<li><a href="https://github.com/lukeed/polka">polka</a> (alpha only) -
micro web server so fast, itll make you dance!</li>
<li><a href="https://github.com/koajs/koa">koa</a> - expressive
middleware for node.js using ES2017 async functions</li>
</ul>
<h3 id="http">HTTP</h3>
<h4 id="http-clients">HTTP Clients</h4>
<ul>
<li><a href="https://github.com/node-fetch/node-fetch">node-fetch</a> -
light-weight module that brings window.fetch to Node.js</li>
<li><a href="https://github.com/lukeed/httpie">httpie</a> - a Node.js
HTTP client as easy as pie!</li>
</ul>
<h4 id="api-clients">API Clients</h4>
<ul>
<li><a href="https://github.com/wopian/kitsu">kitsu</a> - simple,
lightweight &amp; framework agnostic JSON:API client</li>
<li><a href="https://github.com/draftbit/twitter-lite">twitter-lite</a>
- tiny, full-featured, flexible client / server library for the Twitter
API</li>
</ul>
<h3 id="websocket">WebSocket</h3>
<ul>
<li><a href="https://github.com/lukeed/sockette">sockette</a> - tiny
wrapper around WebSocket that will automatically reconnect if the
connection is lost!</li>
</ul>
<h3 id="middleware">Middleware</h3>
<ul>
<li><a
href="https://github.com/talentlessguy/milliparsec">milliparsec</a> -
tiniest Node.js body parser ever</li>
<li><a href="https://github.com/lukeed/sirv">sirv</a> - an optimized
middleware &amp; CLI application for serving static files~!</li>
<li><a href="https://github.com/talentlessguy/tinyws">tinyws</a> - tiny
WebSocket middleware for Node.js</li>
<li><a href="https://github.com/tinyhttp/malibu">malibu</a> -
framework-agnostic CSRF middleware for modern Node.js</li>
<li><a href="https://github.com/tinyhttp/lru-send">lru-send</a> -
LRU-based caching middleware for Node.js</li>
</ul>
<h3 id="template-engines">Template engines</h3>
<ul>
<li><a href="https://github.com/eta-dev/eta">eta</a> - embedded JS
template engine for Node, Deno, and the browser</li>
<li><a href="https://github.com/lukeed/tempura">tempura</a> - A light,
crispy, and delicious template engine</li>
</ul>
<h3 id="ssr">SSR</h3>
<ul>
<li><a
href="https://github.com/preactjs/preact-render-to-string">preact-render-to-string</a>
- universal rendering for Preact: render JSX and Preact components to
HTML.</li>
<li><a
href="https://github.com/kriasoft/hyperapp-render">hyperapp-render</a> -
render Hyperapp to an HTML string with SSR and Node.js streaming
support.</li>
<li><a href="https://github.com/talentlessguy/hypermdx">hypermdx</a> -
Markdown enhanced with Hyperapp</li>
<li><a href="https://github.com/talentlessguy/streamdown">streamdown</a>
- stream markdown to HTML</li>
</ul>
<h3 id="databases">Databases</h3>
<ul>
<li><a href="https://github.com/pubkey/rxdb">rxdb</a> - a realtime
Database for JavaScript Applications.</li>
</ul>
<h3 id="logging">Logging</h3>
<ul>
<li><a href="https://github.com/logtown/logtown">logtown</a> - simple
Logging Facade for JavaScript.</li>
<li><a href="https://gitlab.com/frissdiegurke/oddlog">oddlog</a> -
high-performance payload focused logging library for node.js.</li>
<li><a href="https://github.com/maraisr/diary">diary</a> -
zero-dependency, fast logging library for both Node and Browser.</li>
<li><a href="https://github.com/gajus/roarr">roarr</a> - JSON logger for
Node.js and browser.</li>
</ul>
<h3 id="testing">Testing</h3>
<ul>
<li><a href="https://github.com/lukeed/uvu">uvu</a> - an extremely fast
and lightweight test runner for Node.js and the browser.</li>
<li><a href="https://github.com/bearror/oletus">oletus</a> - minimal
ECMAScript Module test runner</li>
<li><a href="https://github.com/43081j/hanbi">hanbi</a> - a small
javascript library for stubbing and spying on methods/functions.</li>
<li><a href="https://github.com/griffinmyers/wirepig">wirepig</a> - mock
HTTP and TCP dependencies with real sockets.</li>
</ul>
<h3 id="cli">CLI</h3>
<h4 id="argument-parsing">Argument parsing</h4>
<ul>
<li><a href="https://github.com/yargs/yargs">yargs</a> - Command-line
parser that automatically generates an elegant user-interface.</li>
</ul>
<h4 id="colors">Colors</h4>
<ul>
<li><a href="https://github.com/jorgebucaran/colorette">colorette</a> -
color your terminal using pure idiomatic JavaScript.</li>
<li><a href="https://github.com/lukeed/kleur">kleur</a> - the fastest
Node.js library for formatting terminal text with ANSI colors~!</li>
</ul>
<h3 id="date">Date</h3>
<ul>
<li><a href="https://github.com/iamkun/dayjs">dayjs</a> - 2KB immutable
date library alternative to Moment.js with the same modern API</li>
<li><a href="https://github.com/lukeed/tinydate">tinydate</a> - a tiny
(349B) reusable date formatter.</li>
<li><a href="https://github.com/masbagal/tempe">tempe</a> - Featherlight
(&lt; 2kB) helper for Javascript date formatting</li>
<li><a href="https://github.com/xxczaki/light-date">light-date</a> -
blazing fast &amp; lightweight (157 bytes) date formatting for Node.js
and the browser.</li>
</ul>
<h3 id="file-system">File system</h3>
<ul>
<li><a href="https://github.com/bevry/istextorbinary">istextorbinary</a>
- Check if a file is text or binary.</li>
<li><a
href="https://github.com/talentlessguy/tinyhttp/tree/master/packages/dotenv"><span
class="citation"
data-cites="tinyhttp/dotenv">@tinyhttp/dotenv</span></a> - A rewrite of
<a href="https://github.com/motdotla/dotenv">dotenv</a> module.</li>
</ul>
<h3 id="utility">Utility</h3>
<ul>
<li><a href="https://github.com/lukeed/dequal">dequal</a> - tiny (304B
to 489B) utility to check for deep equality</li>
<li><a href="https://github.com/lukeed/klona">klona</a> - tiny (240B to
507B) and fast utility to “deep clone” Objects, Arrays, Dates, RegExps,
and more!</li>
<li><a href="https://github.com/developit/dlv">dlv</a> - Safe deep
property access in 120 bytes. x = dlv(obj, a.b.x)</li>
</ul>
<h3 id="random">Random</h3>
<ul>
<li><a href="https://github.com/lukeed/uuid">uuid</a> - tiny (230B),
fast, and cryptographically secure UUID (V4) generator for Node and the
browser</li>
<li><a href="https://github.com/ai/nanoid">nanoid</a> - Tiny, secure,
URL-friendly, unique string ID generator.</li>
</ul>
<h3 id="parsing">Parsing</h3>
<ul>
<li><a href="https://github.com/developit/snarkdown">snarkdown</a> - a
snarky 1kb Markdown parser written in JavaScript</li>
</ul>
<h3 id="compression">Compression</h3>
<ul>
<li><a href="https://github.com/mikbry/anzip">anzip</a> - simple async
unzip library for Node.js</li>
</ul>
<h3 id="performance">Performance</h3>
<ul>
<li><a href="https://github.com/piscinajs/piscina">piscina</a> - a fast,
efficient Node.js Worker Thread Pool implementation</li>
<li><a href="https://github.com/ai/nanodelay">nanodelay</a> - a tiny (25
bytes) Promise wrapper around setTimeout</li>
</ul>
<h3 id="ast">AST</h3>
<ul>
<li><a href="https://github.com/acornjs/acorn">acorn</a> - a small,
fast, JavaScript-based JavaScript parser</li>
</ul>
<h3 id="functional-programming">Functional programming</h3>
<ul>
<li><a href="https://github.com/facebook/immutable-js">immutable</a> -
Immutable data collections.</li>
<li><a href="https://github.com/Ramda/ramda">ramda</a> - practical
functional Javascript.</li>
<li><a href="https://github.com/marvinhagemeister/smoldash">smoldash</a>
- A tiny lodash alternative built for the modern web</li>
<li><a href="https://github.com/YuriGor/deepdash">deepdash</a> - tree
traversal library written in Underscore/Lodash fashion</li>
</ul>
<h3 id="math">Math</h3>
<ul>
<li><a href="https://github.com/josdejong/mathjs">mathjs</a> - An
extensive math library.</li>
</ul>
<h3 id="ethereum">Ethereum</h3>
<ul>
<li><a href="https://github.com/talentlessguy/get-ens">get-ens</a> - Get
text records of an ENS address</li>
<li><a href="https://github.com/talentlessguy/send-tx">send-tx</a> -
Sign &amp; send Ethereum transactions</li>
</ul>
<h3 id="other">Other</h3>
<ul>
<li><a href="https://github.com/Turfjs/turf">turf</a> - a modular
geospatial engine written in JavaScript</li>
<li><a href="https://github.com/xxczaki/cashify">cashify</a> -
lightweight currency conversion library, successor of money.js</li>
<li><a href="https://github.com/withastro/astro">astro</a> - build
faster websites with the island architecture</li>
<li><a
href="https://github.com/sindresorhus/transliterate">transliterate</a> -
convert Unicode characters to Latin characters using
transliteration</li>
<li><a href="https://github.com/sindresorhus/emittery">emittery</a> -
simple and modern async event emitter.</li>
</ul>
<p><a
href="https://github.com/talentlessguy/awesome-node-esm">nodeesm.md
Github</a></p>