mirror of
https://github.com/sindresorhus/awesome-nodejs.git
synced 2024-11-20 11:27:17 -05:00
⚡ Delightful Node.js packages and resources
https://node.cool
contributing.md | ||
readme.md |
Awesome Node.js
A curated list of delightful Node.js packages and resources.
Inspired by the awesome list thing.
Packages
- Functional programming
- Command-line apps
- HTTP
- Logging
- Web frameworks
- Command-line utilities
- Build tools
- Templating
- Documentation
- Filesystem
- Control flow
- Streams
- Real-time
- Date
- Image
- Humanize
- Static site generators
- Content management systems
- Debugging
- Database
- Testing
- Minifiers
- Authentication
- Node.js management
- Polyfills
- Miscellaneous
Functional programming
- Lo-Dash - A utility library delivering consistency, customization, performance, & extras. A better and faster Underscore.js.
- Underscore.js - Provides a whole mess of useful functional programming helpers without extending any built-in objects.
- Mout - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead.
Command-line apps
- npm - A package-manager for Node.js.
- Bower - A package manager for the web.
- Yo - Run Yeoman generators.
- Pageres - Responsive website screenshots.
- trash - A safer alternative to
rm
. - ESLint - The pluggable linting utility for JavaScript.
- JSHint - A community-driven tool to detect errors and potential problems in JavaScript code.
- cpy - Copy files.
HTTP
- request - Simplified HTTP request client.
- got - A nicer interface to the built-in
http
module. - superagent - A small progressive HTTP request library.
- hyperquest - Streaming HTTP requests.
Logging
Web frameworks
- Koa - A new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
- Express - A minimal and flexible web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
- Hapi - A rich framework for building applications and services.
Command-line utilities
- chalk - Terminal string styling done right.
- minimist - Parse command-line flags
- Inquirer.js - Interactive command-line prompt.
- update-notifier - Update notifications for your CLI app.
- sudo-block - Block users from running your app with root permissions.
- blessed - A curses-like library.
- cli-table - Pretty unicode tables.
Build tools
- gulp.js - Streaming and fast build system that favors code over config.
- grunt - Task runner that can perform repetitive tasks like minification, compilation, unit testing, linting, etc.
- Broccoli - A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions.
Templating
- handlebars.js - Provides the power necessary to let you build semantic templates effectively with no frustration.
- Jade - High performance template engine heavily influenced by Haml.
- nunjucks - A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired).
Documentation
- Docco - A quick-and-dirty documentation generator which produces an HTML document that displays your comments intermingled with your code.
- JSDoc - API documentation generator similar to JavaDoc or PHPDoc.
- dox - JavaScript documentation generator for Node.js using Markdown and JSDoc.
Filesystem
- del - Delete files/folders using globs.
- globby - Glob files with support for multiple patterns.
- cpy - Copy files.
- rimraf - Recursively delete files like
rm -rf
. - mkdirp - Recursively create directories like
mkdir -p
. - graceful-fs - Drop-in replacement for the
fs
module with various improvements.
Control flow
- each-async - Async concurrent iterator like forEach.
- async - Provides straight-forward, powerful functions for working with asynchronousity.
- co - The ultimate generator based flow-control goodness.
- Highland.js - Manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
- native-promise-only - A polyfill for native ES6 Promises.
- Bluebird - A fully featured promise library with focus on innovative features and performance.
- Q - A tool for making and composing asynchronous promises.
Streams
- through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise.
- concat-stream - Concatenates a stream into strings or binary data.
- simple-bufferstream - Turn a Buffer into a ReadableStream.
- co-stream - co generator stream.
- byline - Super-simple line-by-line Stream reader.
Real-time
- Socket.io - Enables real-time bidirectional event-based communication.
Date
- Moment.js - Parse, validate, manipulate, and display dates.
- dateformat - Date formatting.
Image
- sharp - The fastest module for resizing JPEG, PNG, WebP and TIFF images.
Humanize
- pretty-bytes - Convert bytes to a human readable string:
1337
→1.34 kB
. - pretty-ms - Convert milliseconds to a human readable string:
1337000000
→15d 11h 23m 20s
.
Static site generators
- Metalsmith - An extremely simple, pluggable static site generator.
- Wintersmith - Flexible, minimalistic, multi-platform static site generator.
- Assemble - Static site generator for Node.js, Grunt.js, and Yeoman.
Content management systems
- KeystoneJS - CMS and web application platform built on Express and MongoDB.
- Calipso - A simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple.
Debugging
- node-inspector - Debugger based on Blink Developer Tools.
- Theseus - A new type of JavaScript debugger featuring real-time code coverage, retroactive inspection and asynchronous call tree.
- longjohn - Long stack traces with configurable call trace length.
Database
- LevelUP - LevelDB, Node.js style.
Testing
- tape - TAP-producing test harness.
- Mocha - A feature-rich test framework making asynchronous testing simple and fun.
Minifiers
- UglifyJS2 - JavaScript parser, minifier, compressor or beautifier toolkit.
- clean-css - A fast, efficient, and well tested CSS minifier.
- minimize - HTML minifier.
- imagemin - Minify images.
Authentication
- Passport - Simple, unobtrusive authentication.
Node.js management
Polyfills
- object-assign - ES6 Object.assign() polyfill
Miscellaneous
- opn - Opens stuff like websites, files, executables.
- strip-json-comments - Strip comments from JSON.
- multiline - Multiline strings in JavaScript.
- marked - A markdown parser and compiler built for speed.
- semver - semver parser.
- cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
Resources
Tutorials
- Nodeschool - Learn Node.js with interactive lessons.
- The Art of Node - An introduction to Node.js.
- stream-handbook - How to write Node.js programs with streams.
Articles
Videos
Podcasts
Books
Courses
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, Sindre Sorhus has waived all copyright and related or neighboring rights to this work.