awesome-nodejs
Delightful Node.js packages and resources
https://github.com/tantum101/awesome-nodejs
Last synced: 24 days ago
JSON representation
Filtered by javascript. Clear filters
Official
Packages
Authentication
- Grant - OAuth providers for Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel, and many more.
Authorization
- node-casbin - Authorization library that supports access control models like ACL, RBAC and ABAC.
Blogging
Build tools
- parcel - Blazing fast, zero config web app bundler.
- webpack - Packs modules and assets for the browser.
- Brunch - Front-end web app build tool with simple declarative config, fast incremental compilation, and an opinionated workflow.
- FuseBox - Fast build system that combines the power of webpack, JSPM and SystemJS, with first-class TypeScript support.
Command-line apps
-
np
- Better
npm publish. - is-online - Check if the internet connection is up.
- ESLint - The pluggable linting utility for JavaScript.
- bcat - Pipe command output to web browsers.
- fkill - Fabulously kill processes. Cross-platform.
- browser-run - Easily run code in a browser environment.
- wallpaper - Change the desktop wallpaper.
- pen - Live Markdown preview in the browser from your favorite editor.
- diff2html-cli - Pretty git diff to HTML generator.
- trymodule - Try out npm packages in the terminal.
- cash-cli - Convert between 170 currencies.
- npkill - Easily find and remove old and heavy node_modules folders.
Command-line utilities
- chalk - Terminal string styling done right.
- meow - CLI app helper.
- Ink - React for interactive command-line apps.
- Inquirer.js - Interactive command-line prompt.
- shelljs - Portable Unix shell commands.
- Bit - Create, maintain, find and use small modules and components across repositories.
- zx - Write shell scripts JavaScript.
Compression
- Archiver - Streaming interface for archive generation, supporting ZIP and TAR.
Content management systems
- ApostropheCMS - Content management system with an emphasis on intuitive front end content editing and administration built on Express and MongoDB.
- Strapi - Content Management Framework (headless-CMS) to build powerful APIs.
Control flow
- p-map - Map over promises concurrently.
- More…
- RxJS - Reactive programming.
- observable-to-promise - Convert an Observable to a Promise.
Database
- LevelUP - LevelDB.
- MySQL - MySQL client.
- Aerospike - Aerospike client.
- Sequelize - Multi-dialect ORM. Supports PostgreSQL, SQLite, MySQL, and more.
- Bookshelf - ORM for PostgreSQL, MySQL and SQLite3 in the style of Backbone.js.
- OpenRecord - ORM for PostgreSQL, MySQL, SQLite3 and RESTful datastores. Similar to ActiveRecord.
- pg-promise - PostgreSQL framework for native SQL using promises.
- slonik - PostgreSQL client with strict types, detailed logging and assertions.
- TypeORM - ORM for PostgreSQL, MariaDB, MySQL, SQLite, and more.
- MikroORM - TypeScript ORM based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, PostgreSQL, MySQL and SQLite.
- Prisma - Modern database access (ORM alternative). Auto-generated and type-safe query builder in TypeScript. Supports PostgreSQL, MySQL & SQLite.
- Knex - Query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.
- Lowdb - Small JavaScript database powered by Lodash.
- database-js - Wrapper for multiple databases with a JDBC-like connection.
- @databases - Query PostgreSQL, MySQL and SQLite3 with plain SQL without risking SQL injection.
Data validation
- schema-inspector - JSON API sanitization and validation.
- Superstruct - Simple and composable way to validate data in JavaScript (and TypeScript).
Date
- date-fns - Modern date utility.
Debugging / Profiling
- debug - Tiny debugging utility.
- locus - Starts a REPL at runtime that has access to all variables.
- leakage - Write memory leak tests.
- dats - Minimalistic and zero-dependencies StatsD client.
Documentation
- documentation.js - API documentation generator with support for ES2015+ and flow annotation.
- JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
- Docusaurus - Documentation website generator that leverages React and Markdown, and comes with translation and versioning features.
Filesystem
Forum
- nodeBB - Forum platform for the modern web.
Functional programming
- lodash - Utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
- Ramda - Utility library with a focus on flexible functional composition enabled by automatic currying and reversed argument order. Avoids mutating data.
- RxJS - Functional reactive library for transforming, composing, and querying various kinds of data.
- Kefir.js - Reactive library with focus on high performance and low memory usage.
Hardware
- johnny-five - Firmata based Arduino Framework.
- serialport - Access serial ports for reading and writing.
- i2c-bus - I2C serial bus access.
- onoff - GPIO access and interrupt detection.
- spi-device - SPI serial bus access.
- pigpio - Fast GPIO, PWM, servo control, state change notification, and interrupt handling on the Raspberry Pi.
- gps - NMEA parser for handling GPS receivers.
HTTP
- axios - Promise based HTTP client (works in the browser too).
- gotql - GraphQL request library built on got.
- purest - REST client.
Image
- sharp - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
- ImageScript - Image processing in JavaScript, utilizing WebAssembly for performance.
Mad science
- webtorrent - Streaming torrent client for Node.js and the browser.
- ipfs - Distributed file system that seeks to connect all computing devices with the same system of files.
- BitcoinJS - Clean, readable, proven Bitcoin library.
- turf - Modular geospatial processing and analysis engine.
- NodeOS - The first operating system powered by npm.
- YodaOS - AI operating system.
- Cytoscape.js - Graph theory (a.k.a. network) modeling and analysis.
- xlsx - Pure JS Excel spreadsheet reader and writer.
- isomorphic-git - Pure JavaScript implementation of Git.
Math
- mathjs - An extensive math library.
Minifiers
- minimize - HTML minifier.
Miscellaneous
-
execa
- Better
child_process. - file-type - Detect the file type of a Buffer.
- ow - Function argument validation for humans.
- dotenv - Load environment variables from .env file.
- nodegit - Native bindings to Git.
- json-strictify - Safely serialize a value to JSON without data loss or going into an infinite loop.
- jsdom - JavaScript implementation of HTML and the DOM.
- emittery - Simple and modern async event emitter.
- patch-package - Make and preserve fixes to npm dependencies.
- wild-wild-path - Object property paths with wildcards and regexes.
Natural language processing
- retext - An extensible natural language system.
- franc - Detect the language of text.
- nlp.js - Building bots, with entity extraction, sentiment analysis, automatic language identify, and more.
Network
Node.js management
- fnm - Cross-platform Node.js version manager built in Rust.
Parsing
- remark - Markdown processor powered by plugins.
- markdown-it - Markdown parser with 100% CommonMark support, extensions and syntax plugins.
- URI.js - URL mutation.
- PEG.js - Simple parser generator that produces fast parsers with excellent error reporting.
- nearley - Simple, fast, powerful parsing for JavaScript.
- xml2js - XML to JavaScript object converter.
- xlsx-populate - Read/write Excel XLSX.
- Chevrotain - Very fast and feature rich parser building toolkit for JavaScript.
Real-time
- Socket.io - Enables real-time bidirectional event-based communication.
- SocketCluster - Scalable HTTP + WebSocket engine which can run on multiple CPU cores.
- Primus - An abstraction layer for real-time frameworks to prevent module lock-in.
- MQTT.js - Client for MQTT - Pub-sub based messaging protocol for use on top of TCP/IP.
Security
- themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.
Serialization
Static site generators
- Charge - Opinionated, zero-config static site generator using JSX and MDX.
Streams
- multistream - Combine multiple streams into a single stream.
Templating
- marko - HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering and custom tags.
Testing
- AVA - Futuristic test runner.
- Mocha - Feature-rich test framework making asynchronous testing simple and fun.
- nyc - Code coverage tool built on istanbul that works with subprocesses.
- Sinon.JS - Test spies, stubs and mocks.
- Nock - HTTP mocking and expectations.
- intern - Code testing stack.
- Nightwatch - Automated UI testing framework based on Selenium WebDriver.
- WebdriverIO - Automated testing based on the WebDriver protocol.
- CodeceptJS - End-to-end testing.
- Playwright - Headless Chromium, WebKit, and Firefox with a single API.
- nve - Run any command on multiple versions of Node.js locally.
Text
- he - HTML entity encoder/decoder.
- i18next - Internationalization framework.
- StegCloak - Conceal secrets within strings, in plain sight.
Web frameworks
- Express - Web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
- Feathers - Microservice framework built in the spirit of Express.
- Meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. (You might like awesome-meteor)
- ActionHero - Framework for making reusable & scalable APIs for TCP sockets, WebSockets, and HTTP clients.
- seneca - Toolkit for writing microservices.
- Nest - Angular-inspired framework for building efficient and scalable server-side apps.
- Tinyhttp - Modern and fast Express-like web framework.
- Marble.js - Functional reactive framework for building server-side apps, based on TypeScript and RxJS.
- Lad - Framework made by a former Express TC and Koa member that bundles web, API, job, and proxy servers.
Resources
Tutorials
- Node.js Best Practices - Summary and curation of the top-ranked content on Node.js best practices, available in multiple languages.
- Portable Node.js guide - Practical guide on how to write portable/cross-platform Node.js code.