Tools & Libraries
info
this page from: iwanjunaid
A curated list of awesome JavaScript frameworks, libraries, tools and resources.
- Web Frameworks
- UI Libraries
- Mobile
- Package Managers and Sources
- Process Manager
- Control Flow
- DOM
- Real-time
- Testing
- Logging
- Profiling
- CLI
- ORM
- Migration
- HTTP
- Network
- Functional Programming
- Regular Expression
- String
- Number
- Date
- Math
- Data Structure
- WYSIWYG
- [ASCII] (#ascii)
- Linter
- Editors
- Blog Engine
- CMS
- Social Media
- Animation
- Data Visualization
- Data Processing
- Keyboard
- Image Processing
- Audio
- Video
- Robotics and IoT
- Science
- Miscellaneous Libraries
- Desktop App
- Resources
Web Frameworksβ
- AngularJS - HTML enhanced for web apps. AngularJS lets you extend HTML vocabulary for your application.
- Ember.js - A framework for creating ambitious web applications.
- Express - Fast, unopinionated, minimalist web framework for Node.js.
- Koa - Next generation web framework for Node.js.
- Meteor - The JavaScript App Platform. Build apps that are a delight to use, faster than you ever thought possible.
- Meatier - A Meteor alternative. Like Meteor but Meatier.
- Derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- Backbone.js - Give your JS app some Backbone with Models, Views, Collections, and Events.
- Marionette - Simplifies your Backbone application code with robust views and architecture solutions.
- Hapi - A rich framework for building applications and services. It enables developers to focus on writing reusable application logic instead of spending time building infrastructure.
- Diet - A tiny, fast and modular node.js web framework. Good for making fast & scalable apps and apis.
- Sails.js - Realtime MVC framework for Node.js.
- LoopBack - LoopBack is a highly-extensible, open-source Node.js framework for quickly create dynamic end-to-end REST APIs.
- AquaJS - A Node.js Framework for your next API development. It gives you a quick and organized way to start developing an application.
- Restify - Node.js REST framework specifically meant for web service APIs.
- Aurelia - A JavaScript client framework for mobile, desktop and web leveraging simple conventions and empowering creativity.
- Total.js - Free web application framework for building Web sites and Web applications using JavaScript, HTML and CSS. Node.js (HMVC) web application framework.
- MERN - A scaffolding tool which makes it easy to build isomorphic apps using Mongo, Express, React and NodeJS.
- MEAN - An opinionated fullstack javascript framework (MongoDB, Express, Angular and Node.JS) - which simplifies and accelerates web application development.
UI Librariesβ
- React - A JavaScript library for building user interfaces using components, virtual DOM and implements one-way reactive data flow.
- Preact - Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
- Vue.js - Reactive components for modern web interfaces.
Mobileβ
- React Native - A framework for building native apps using React.
UI Interaction Librariesβ
- Hammer.js - A javascript library for multi-touch gestures.
- Slick - The last carousel you'll ever need.
Package Managers and Sourcesβ
- NPM - Node Package Manager.
- Atmosphere - The trusted source for Meteor packages.
Process Managerβ
- PM2 - Production process manager for Node.js applications with a built-in load balancer.
- Forever - A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
- nodemon - Monitor for any changes in your node.js application and automatically restart the server - perfect for development.
- node-supervisor - A little supervisor script for nodejs. It runs your program, and watches for code changes, so you can have hot-code reloading-ish behavior, without worrying about memory leaks and making sure you clean up all the inter-module references, and without a whole new require system.
Control Flowβ
- Async - A utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
- q - A tool for creating and composing asynchronous promises in JavaScript.
- Bluebird - A full featured promise library with unmatched performance.
- When.js - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
- Co - The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc).
DOMβ
- jQuery - Fast, small, and feature-rich JavaScript library.
- Zepto - A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API.
- Cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
Real-timeβ
- Socket.io - The fastest and most reliable real-time engine. Works on every platform, browser or device, focusing equally on reliability and speed.
- Deepstream.io - A clusterable server that provides everything necessary to build powerful realtime applications.
- Faye - A publish-subscribe messaging system based on the Bayeux protocol.
- Primus - The creator god of transformers but now also known as universal wrapper for real-time frameworks.
- SocketCluster - Highly scalable realtime microframework.
Testingβ
- Mocha - A feature-rich JavaScript test framework running on Node.js and the browser, making asynchronous testing simple and fun.
- Jest - A delightful JavaScript Testing Framework with a focus on simplicity.
- Jasmine - A Behavior Driven Development testing framework for JavaScript. It's suited for websites, Node.js projects, or anywhere that JavaScript can run.
- Vorlon.JS - An open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript. Powered by node.js and socket.io.
- Nightwatch.js - Write End-to-End tests in Node.js quickly and effortlessly that run against a Selenium server.
- Chai - A BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
- Intern - Software testing for humans.
- QUnit - A powerful, easy-to-use JavaScript unit testing framework. It's used by the jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code, including itself!
- CodeceptJS - Modern era acceptance testing for Node.js.
Loggingβ
- Pino - Very low overhead Node.js logger, inspired by Bunyan.
- Winston - A multi-transport async logging library for Node.js.
- Bunyan - A simple and fast JSON logging module for Node.js services.
Profilingβ
- Clinic.js - Tools to help diagnose and pinpoint Node.js performance issues.
- 0x - Single-command flamegraph profiling.
CLIβ
- Vorpal - A framework that makes it easy to build mature, immersive command-line applications in JavaScript.
- Inquirer.js - A collection of common interactive command line user interfaces.
- Cash - A cross-platform implementation of Unix shell commands written in pure ES6.
- how2 - Stackoverflow from the terminal.
ORMβ
- Sequelize - A promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server.
- Bookshelf.js - A JavaScript ORM for Node.js, built on the Knex SQL query builder.
- Objection.js - An SQL-friendly ORM for Node.js
Migrationβ
- migrate - Abstract migration framework for node.
HTTPβ
- Request - Simplified HTTP request client.
- SuperAgent - A small progressive client-side HTTP request library, and Node.js module with the same API, sporting many high-level HTTP client features.
- Nock - HTTP mocking and expectations library.
- node-http-proxy - A full-featured http proxy for Node.js.
- http-server - A simple zero-configuration command-line http server.
Networkβ
Emailβ
- Nodemailer - Send e-mails with Node.JS β easy as cake!
- emailjs - Send emails, html and attachments (files, streams and strings) from node.js to any smtp server
- node-imap - An IMAP client module for Node.js.
SSHβ
- SSH2 - SSH2 client and server modules written in pure JavaScript for Node.js.
FTPβ
- node-ftp - An FTP client module for Node.js.
Torrentβ
- Torrent - Download torrents with node from the CLI.
Gitβ
- NodeGit - Native Node bindings to Git.
Functional Programmingβ
- Underscrore - JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
- Lodash - A modern JavaScript utility library delivering modularity, performance, & extras.
- Lazy.js - Similar to Underscore and Lodash, but with an underlying engine that supports many more use cases than those libraries, while offering comparable or superior performance in most scenarios.
- Vitals - Do more with less. A simple, high-performing, functional JavaScript library.
Regular Expressionβ
- VerbalExpressions - A JavaScript library that helps to construct difficult regular expressions.
Stringβ
- Chance - A minimalist generator of random strings, numbers, etc. to help reduce some monotony particularly while writing automated tests or anywhere else you need anything random.
- faker.js - Generate massive amounts of fake data in Node.js and the browser.
Numberβ
- Accounting.js - A tiny JavaScript library providing simple and advanced number, money and currency formatting.
- Numeral.js - A javascript library for formatting and manipulating numbers.
Dateβ
Mathβ
- Math.js - An extensive math library for JavaScript and Node.js
- NumJs - A npm/bower package for scientific computing with JavaScript.
Data Structureβ
- Buckets - A complete, fully tested and documented data structure library written in pure JavaScript.
- TreeModel - Manipulate and traverse tree-like structures in javascript.
WYSIWYGβ
- MediumEditor - Medium.com WYSIWYG editor clone. Uses contenteditable API to implement a rich text solution.
- ContentTools - A JS library for building WYSIWYG editors for HTML content.
ASCIIβ
- blessed - A curses-like library with a high level terminal interface API for node.js.
- blessed-contrib - Build dashboards (or any other application) using ascii/ansi art and javascript.
- oo-ascii-tree - Renders ASCII trees from an object-oriented object graph.
Linterβ
- ESLint - The pluggable linting utility for JavaScript and JSX.
- JSLint - The JavaScript code quality tool.
Editorsβ
- NTVS - A free, open source plugin that turns Visual Studio into a Node.js IDE. It is designed, developed, and supported by Microsoft and the community.
- Abricotine - A markdown editor for desktop.
Blog Engineβ
- Ghost - An open source publishing platform which is beautifully designed, easy to use, and free for everyone.
- Hexo.io - A fast, simple & powerful blog framework.
CMSβ
- Relax - New generation CMS on top of React, Redux and GraphQL.
Social Mediaβ
- fb-sleep - Use Facebook to track your friendsβ sleeping habits.
Animationβ
- mo.js - Motion graphics toolbelt for the web.
Data Visualizationβ
- D3.js - A JavaScript library for manipulating documents based on data and helps you bring data to life using HTML, SVG, and CSS.
- Sigma - A JavaScript library dedicated to graph drawing.
- Timesheet.js - JavaScript library for HTML5 & CSS3 time sheets.
Data Processingβ
- EclairJS - Node.js API for Apache Spark with Remote Client.
Keyboardβ
- Mousetrap - A simple library for handling keyboard shortcuts in Javascript.
- Keymaster - A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
PDFβ
- PDFkit - A JavaScript PDF generation library for Node and the browser.
- PDF.js - A Portable Document Format (PDF) viewer that is built with HTML5.
- pdfmake - Client/server side PDF printing in pure JavaScript.
Image Processingβ
- CamanJS - A combination of a simple-to-use interface with advanced and efficient image/canvas editing techniques.
- Jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.
Audioβ
- SoundJS - A JavaScript library that provides a simple API, and powerful features to make working with audio a breeze.
- JuliusJS - A speech recognition library for the web.
Videoβ
- Fluent ffmpeg - A fluent API to FFMPEG.
Robotics and IoTβ
- Johnny-Five - The JavaScript robotics programming framework.
- Cylon.js - Next generation robotics framework with support for 43 different platforms.
- Node-RED - A tool for wiring together hardware devices, APIs and online services in new and interesting ways.
Scienceβ
Satelliteβ
- Himawari - Download real-time images of Earth from the Himawari-8 satellite.
Miscellaneous Librariesβ
- is.js - Micro check library.
Desktop Appβ
- N1 - An open-source mail client built on the modern web with Electron, React, and Flux.
- Wmail - The missing desktop client for Gmail & Google Inbox. Bringing the Gmail & Google Inbox experience to your desktop in a neatly packaged app.
Resourcesβ
Coursesβ
- Free Code Camp - An open source community that helps you learn to code and help nonprofits.
Lessonsβ
- JS Bits - JavaScript concepts explained with proper code samples.
- Angular 2 Education - A curated list of helpful material to get started with education on Angular 2.
- Beginner Webpack Tutorial - A simple webpack tutorial.
- You Don't Need jQuery - Examples of how to do query, style, dom, ajax, event etc like jQuery with plain JavaScript.
- You don't (may not) need Lodash/Underscore - Lists of Javascript methods which you can use natively to replace Lodash or Underscore.
- Regular Expressions in JavaScript - Regular expressions in JavaScript
Tips and Tricksβ
- ES6 Cheatsheet - A cheatsheet containing ES2015 (ES6) tips, tricks, best practices and code snippet examples for your day to day workflow.
- JS Tips - This is about one JS tip every day!
- JavaScript Style - Airbnb JavaScript style guide.
Web Referenceβ
- Mozilla Developer Network - The official Mozilla Foundation website for development documentation of web standards and Mozilla projects.
Booksβ
- JavaScript: The Good Parts by Douglas Crockford
- The Principles of Object-Oriented JavaScript by Nicholas C. Zakas