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.< 8000 /p>
- 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.
- 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
- 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.
- 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.
- 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.
- famous - A JavaScript framework for everyone who wants to build beautiful experiences on any device.
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
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.
- 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.
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.
Functional programming libraries to e 8000 xtend 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.
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.
- Numeral-js - A javascript library for formatting and manipulating numbers.
- 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.
- 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.
- Cookies - JavaScript Client-Side Cookie Manipulation Library.
- [DB.js] (https://github.com/aaronpowell/db.js/) - Promise based IndexDB Wrapper library
- 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.
- ClassManager - One of the fastest and most convenient class systems in the world
- klass - A utility for creating expressive classes in JavaScript.
- augment - The world's smallest and fastest classical JavaScript inheritance pattern.
- async - Async utilities for node and the browser.
- q - A tool for making and composing asynchronous promises in JavaScript.
- step - An async control-flow library that makes stepping through logic easy.
- contra - Asynchronous flow control with a functional taste to it.
- Bluebird - fully featured promise library with focus on innovative features and performance.
- when - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
- ObjectEventTarget - Provide a prototype that add support to event listeners (with same behavior of EventTarget from DOMElements available on browsers).
- director - A tiny and isomorphic URL router for JavaScript.
- page.js - Micro client-side router inspired by the Express router (~1200 bytes).
- pathjs - Simple, lightweight routing for web browsers.
- crossroads - JavaScript Routes.
- davis.js - RESTful degradable JavaScript routing using pushState.
- DOMPurify - A DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG.
- js-xss - Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist.
- log - Console.log with style.
- Conzole - A debug panel built in javascript that wraps javascript native console object methods and functionality in a panel displayed inside the page.
- console.log-wrapper - Log to the console in any browser with clarity.
- loglevel - Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods.
- Ion.Sound - Simple sounds on any web page
- annyang - A JavaScript library for adding voice commands to your site, using speech recognition.
- voix.js - A JavaScript library to add voice commands to your sites, apps or games.
- bottleneck - A powerful rate limiter that makes throttling easy.
- oauth-signature-js - JavaScript OAuth 1.0a signature generator for node and the browser.
- amygdala - RESTful HTTP client for JavaScript powered web applications.
- jquery.rest - A jQuery plugin for easy consumption of RESTful APIs.
- tracking.js - A modern approach for Computer Vision on the web.
- ocrad.js - OCR in Javascript via Emscripten.
- bowser - a browser detector
- Highlight.js - Javascript syntax highlighter.
- PrismJS - Lightweight, robust, elegant syntax highlighting.
Libraries for indicate load status.
- Mprogress.js - Create Google Material Design progress linear bars.
- NProgress - Slim progress bars for Ajax'y applications.
- Spin.js - A spinning activity indicator.
- progress.js - Create and manage progress bar for every objects on the page.
- progressbar.js - Beautiful and responsive progress bars with animated SVG paths.
- pace - Automatically add a progress bar to your site.
- topbar - Tiny & beautiful site-wide progress indicator.
- nanobar - Very lightweight progress bars. No jQuery.
- PageLoadingEffects - Modern ways of revealing new content using SVG animations.
- SpinKit - A collection of loading indicators animated with CSS.
- Ladda - Buttons with built-in loading indicators.
- css-loaders - A collection of loading spinners animated with CSS.
Besides libraries, there're Collection on Codepen, and generators like Ajaxload, Preloaders and CSSLoad.