A collection of awesome browser-side JavaScript libraries, resources and shiny things.
- Awesome JavaScript
- Worth Reading
- Other Awesome Lists
- Contributing
Host the javascript libraries and provide tools for fetching and packaging them.
- npm - npm is the package manager for javascript.
- Bower - A package manager for the web.
- component - Client package management for building better web applications.
- spm - Brand new static package manager.
- jam - A package manager using a browser-focused and RequireJS compatible repository.
- jspm - Frictionless browser package management.
- Ender - The no-library library.
- volo - Create front end projects from templates, add dependencies, and automate the resulting projects.
- Duo - Next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code quick and painless.
Module or loading system for JavaScript.
- RequireJS - A file and module loader for JavaScript.
- browserify - Browser-side require() the node.js way.
- SeaJS - A Module Loader for the Web.
- HeadJS - The only script in your HEAD.
- curl - A small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
- lazyload - Tiny, dependency-free async JavaScript and CSS loader.
- script.js - Asyncronous JavaScript loader and dependency manager.
- systemjs - AMD, CJS & ES6 spec-compliant module loader.
- LodJS - Module loader based on AMD
- ESL - Module loader browser first, support lazy define and AMD.
- modulejs - Lightweight JavaScript module system.
- browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
- webpack - Packs CommonJs/AMD modules for the browser.
- mocha - Simple, flexible, fun javascript test framework for node.js & the browser.
- jasmine - DOM-less simple JavaScript testing framework.
- qunit - An easy-to-use JavaScript Unit Testing framework.
- jest - Painless Javascript Unit Testing.
- prova - Node & Browser test runner based on Tape and Browserify
- DalekJS - Automated cross browser functional testing with JavaScript
- Protractor - Protractor is an end-to-end test framework for AngularJS applications.
- chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Sinon.JS - Test spies, stubs, and mocks for JavaScript.
- expect.js - Minimalistic BDD-style assertions for Node.JS and the browser.
- istanbul - Yet another JS code coverage tool.
- blanket - A simple code coverage library for javascript. Designed to be easy to install and use, for both browser and nodejs.
- JSCover - JSCover is a tool that measures code coverage for JavaScript programs.
- phantomjs - Scriptable Headless WebKit.
- slimerjs - A PhantomJS-like tool running Gecko.
- casperjs - Navigation scripting & testing utility for PhantomJS and SlimerJS.
- zombie - Insanely fast, full-stack, headless browser testing using node.js.
- totoro - A simple and stable cross-browser testing tool.
- karma - Spectacular Test Runner for JavaScript.
- nightwatch - UI automated testing framework based on node.js and selenium webdriver.
- intern - A next-generation code testing stack for JavaScript.
- yolpo - A statement-by-statement javascript interpreter in the browser.
- JSHint - JSHint is a tool that helps to detect errors and potential problems in your JavaScript code.
- jscs - JavaScript Code Style checker.
- jsfmt - For formatting, searching, and rewriting JavaScript.
- jsinspect - Detect copy-pasted and structurally similar code.
- buddy.js - Magic number detection for JavaScript.
- ESLint - A fully pluggable tool for identifying and reporting on patterns in JavaScript.
- JSLint - High-standards, strict & opinionated code quality tool, aiming to keep only good parts of the language.
- angular.js - HTML enhanced for web apps.
- aurelia - A Javascript client framework for mobile, desktop and web.
- backbone - Give your JS App some Backbone with Models, Views, Collections, and Events.
- batman.js - The best JavaScript framework for Rails developers.
- ember.js - A JavaScript framework for creating ambitious web applications.
- meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework.
- ractive - Next-generation DOM manipulation.
- vue - Intuitive, fast & composable MVVM for building interactive interfaces.
- knockout - Knockout makes it easier to create rich, responsive UIs with JavaScript.
- spine - Lightweight MVC library for building JavaScript applications.
- espresso.js - A minimal javascript library for crafting user interfaces.
- canjs - Can do JS, better, faster, easier.
- react - A library for building user interfaces. It's declarative, efficient, and extremely flexible. Works with a Virtual DOM.
- react-native - A framework for building native apps with React.
- riot - React-like library, but with very small size.
- thorax - Strengthening your Backbone.
- chaplin - An architecture for JavaScript applications using the Backbone.js library.
- marionette - A composite application library for Backbone.js that aims to simplify the construction of large scale JavaScript applications.
- ripple - A tiny foundation for building reactive views.
- rivets - Lightweight and powerful data binding + templating solution.
- derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- derby-awesome - A collection of awesome derby components
- way.js - Simple, lightweight, persistent two-way databinding.
- mithril.js - Mithril is a client-side MVC framework (Light-weight, Robust, Fast).
- jsblocks - jsblocks is better MV-ish framework.
- LiquidLava - Transparent MVC framework for building user interfaces.
- feathers - A minimalist real-time JavaScript framework for tomorrow's apps.
- KeystoneJS - powerful CMS and web app framework
- Reaction Commerce - reactive CMS, real-time architecture and design
- Ghost - simple, powerful publishing platform
- Apostrophe - CMS with content editing and essential services
- We.js - framework for real time apps, sites or blogs
- Hatch.js - CMS platform with social features.
- TaracotJS - fast and minimalist CMS based on Node.js.
- Nodizecms - CMS for CoffeeScript lovers
- Cody - CMS with WSYWYG editor
- PencilBlue - CMS and blogging platform
Templating engines allow you to perform string interpolation.
- mustache.js - Minimal templating with {{mustaches}} in JavaScript.
- handlebars.js - An extension to the Mustache templating language.
- hogan.js - A compiler for the Mustache templating language.
- doT - The fastest + concise javascript template engine for nodejs and browsers.
- dustjs - Asynchronous templates for the browser and node.js.
- eco - Embedded CoffeeScript templates.
- JavaScript-Templates - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies.
- t.js - A tiny javascript templating framework in ~400 bytes gzipped.
- Jade - Robust, elegant, feature rich template engine for nodejs.
- EJS - Effective JavaScript templating.
- xtemplate - eXtensible Template Engine lib for node and the browser
- marko - A fast, lightweight, HTML-based templating engine for Node.js and the browser with async, streaming, custom tags and CommonJS modules as compiled output.
- swig - A simple, powerful, and extendable Node.js and browser-based JavaScript template engine.
- The JavaScript that you should know - Article about concepts of JavaScript Functional.
Data visualization tools for the web.
- d3 - A JavaScript visualization library for HTML and SVG.
- metrics-graphics - A library optimized for concise, principled data graphics and layouts.
- pykcharts.js - Well designed d3.js charting without the complexity of d3.js.
- three.js - JavaScript 3D library.
- Chart.js - Simple HTML5 Charts using the tag.
- paper.js - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas.
- fabric.js - Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser.
- peity - Progressive bar, line and pie charts.
- raphael - JavaScript Vector Library.
- echarts - Enterprise Charts.
- vis - Dynamic, browser-based visualization library.
- two.js - A renderer agnostic two-dimensional drawing api for the web.
- g.raphael - Charts for Raphaël.
- sigma.js - A JavaScript library dedicated to graph drawing.
- arbor - A graph visualization library using web workers and jQuery.
- cubism - A D3 plugin for visualizing time series.
- dc.js - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js
- vega - A visualization grammar.
- processing.js - Processing.js makes your data visualizations work using web standards and without any plug-ins
- envisionjs - Dynamic HTML5 visualization.
- rickshaw - JavaScript toolkit for creating interactive real-time graphs.
- flot - Attractive JavaScript charts for jQuery.
- morris.js - Pretty time-series line graphs.
- nvd3 - Build re-usable charts and chart components for d3.js
- svg.js - A lightweight library for manipulating and animating SVG.
- heatmap.js - JavaScript Library for HTML5 canvas based heatmaps.
- jquery.sparkline - A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser.
- xCharts - A D3-based library for building custom charts and graphs.
- trianglify - Low poly style background generator with d3.js
- d3-cloud - Create word clouds in JavaScript.
- d4 - A friendly reusable charts DSL for D3.
- dimple.js - Easy charts for business analytics powered by d3
- chartist-js - Simple responsive charts.
- epoch - A general purpose real-time charting library.
- c3 - D3-based reusable chart library.
- BabylonJS - A framework for building 3D games with HTML 5 and WebGL.
There're also some great commercial libraries, like amchart, plotly, and highchart.
- TimelineJS - A Storytelling Timeline built in JavaScript.
- timesheet.js - JavaScript library for simple HTML5 & CSS3 time sheets.
- ace - Ace (Ajax.org Cloud9 Editor).
- CodeMirror - In-browser code editor.
- esprima - ECMAScript parsing infrastructure for multipurpose analysis.
- quill - A cross browser rich text editor with an API.
- medium-editor - Medium.com WYSIWYG editor clone.
- pen - enjoy live editing (+markdown).
- jquery-notebook - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium.
- bootstrap-wysiwyg - Tiny bootstrap-compatible WYSIWYG rich text editor.
- ckeditor-releases - The best web text editor for everyone.
- editor - A markdown editor. still on development.
- EpicEditor - An embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more.
- jsoneditor - A web-based tool to view, edit and format JSON.
- vim.js - JavaScript port of Vim with a persistent ~/.vimrc
- Squire - HTML5 rich text editor.
- TinyMCE - The JavaScript Rich Text editor.
- trix - A rich text editor for everyday writing. By Basecamp.
- Trumbowyg - A lightweight and amazing WYSIWYG JavaScript editor.
- Draft.js - A React framework for building text editors.
- DevDocs is an all-in-one API documentation reader with a fast, organized, and consistent interface.
- dexy is a free-form literate documentation tool for writing any kind of technical document incorporating code.
- docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
- styledocco generates documentation and style guide documents from your stylesheets.
- Ronn builds manuals. It converts simple, human readable textfiles to roff for terminal display, and also to HTML for the web.
- dox is a JavaScript documentation generator written with node. Dox no longer generates an opinionated structure or style for your docs, it simply gives you a JSON representation, allowing you to use markdown and JSDoc-style tags.
- jsdox is a JSDoc3 to Markdown documentation generator.
- YUIDoc is a Node.js application that generates API documentation from comments in source, using a syntax similar to tools like Javadoc and Doxygen.
- coddoc is a jsdoc parsing library. Coddoc is different in that it is easily extensible by allowing users to add tag and code parsers through the use of coddoc.addTagHandler and coddoc.addCodeHandler. coddoc also parses source code to be used in APIs.
- sphinx a tool that makes it easy to create intelligent and beautiful documentation
- Using JSDoc
- Beautiful docs is a documentation viewer based on markdown files.
- Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly.
- documentation.js - API documentation generator with support for ES2015+ and flow annotation.
Libraries for working with files.
- Papa Parse - A powerful CSV library that supports parsing CSV files/strings and also exporting to CSV.
- jBinary - High-level I/O (loading, parsing, manipulating, serializing, saving) for binary files with declarative syntax for describing file types and data structures.
- diff2html - Git diff output parser and pretty HTML generator.
Functional programming libraries to extend JavaScript’s capabilities.
- underscore - JavaScript's utility _ belt.
- lodash - A utility library delivering consistency, customization, performance, & extras.
- Sugar - A Javascript library for working with native objects.
- lazy.js - Like Underscore, but lazier.
- ramda - A practical functional library for Javascript programmers.
- mout - Modular JavaScript Utilities.
- mesh - Streamable data synchronization utility.
Reactive programming libraries to extend JavaScript’s capabilities.
- RxJs - The Reactive Extensions for JavaScript.
- Bacon - FRP (functional reactive programming) library for Javascript.
- Kefir - FRP library for JavaScript inspired by Bacon.js and RxJS with focus on high performance and low memory consumption.
- [Highland] (http://highlandjs.org/) - Re-thinking the JavaScript utility belt, Highland manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
- Most.js - high performance FRP library.
Data structure libraries to build a more sophisticated application.
- immutable-js - Immutable Data Collections including Sequence, Range, Repeat, Map, OrderedMap, Set and a sparse Vector.
- mori - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
- buckets - A complete, fully tested and documented data structure library written in JavaScript.
- hashmap - Simple hashmap implementation that supports any kind of keys.
Date Libraries.
- moment - Parse, validate, manipulate, and display dates in javascript.
- moment-timezone - Timezone support for moment.js.
- jquery-timeago - A jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago").
- timezone-js - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.
- date - Date() for humans.
- ms.js - Tiny millisecond conversion utility.
String Libraries.
- selecting - A library that allows you to access the text selected by the user
- underscore.string - String manipulation extensions for Underscore.js javascript library.
- string.js - Extra JavaScript string methods.
- he - A robust HTML entity encoder/decoder written in JavaScript.
- multiline - Multiline strings in JavaScript.
- query-string - Parse and stringify URL query strings.
- URI.js - Javascript URL mutation library.
- jsurl - Lightweight URL manipulation with JavaScript.
- sprintf.js - A sprintf implementation.
- url-pattern - Easier than regex string matching patterns for urls and other strings. Turn strings into data or data into strings
- Numeral-js - A javascript library for formatting and manipulating numbers.
- chance.js - Random generator helper in Javascript. Can generate numbers, strings etc.
- odometer - Smoothly transitions numbers with ease.
- accounting.js - A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.
- money.js - A tiny (1kb) javascript currency conversion library, for web & nodeJS.
- Fraction.js - A rational number library for JavaScript
- Complex.js - A complex number library for JavaScript
- Polynomial.js - A polynomials library for JavaScript
- store.js - LocalStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood.
- localForage - Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.
- jStorage - jStorage is a simple key/value database to store data on browser side.
- cross-storage - Cross domain local storage, with permissions.
- basket.js - A script and resource loader for caching & loading scripts with localStorage.
- bag.js - A caching script and resource loader, similar to basket.js, but with additional k/v interface and localStorage / websql / indexedDB support.
- basil.js - The missing Javascript smart persistent layer.
- jquery-cookie - A simple, lightweight jQuery plugin for reading, writing and deleting cookies.
- js-cookie - A simple, lightweight JavaScript API for handling browser cookies
- Cookies - JavaScript Client-Side Cookie Manipulation Library.
- [DB.js] (https://github.com/aaronpowell/db.js/) - Promise based IndexDB Wrapper library
- [lawnchair.js] (https://github.com/brianleroux/lawnchair/) - Simple client-side JSON storage.
- [sql.js] (https://github.com/kripken/sql.js) - SQLite compiled to JavaScript through Emscripten.
- randomColor - A color generator for JavaScript.
- chroma.js - JavaScript library for all kinds of color manipulations.
- color - JavaScript color conversion and manipulation library.
- colors - Smarter defaults for colors on the web.
- PleaseJS - JavaScript Library for creating random pleasing colors and color schemes.
- TinyColor - Fast, small color manipulation and conversion for JavaScript.
- [Vibrant.js] (https://github.com/jariz/vibrant.js/) - Extract prominent colors from an image.
Localization (l10n) and internationalization (i18n) JavaScript libraries.
- i18next - internationalisation (i18n) with javascript the easy way.
- polyglot - tiny i18n helper library.
- babelfish - i18n with human friendly API and built in plurals support.
