From e76e5de25d6a424ed1f61bdd6948090c325310c8 Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Mon, 2 Jun 2014 00:26:35 +0200 Subject: [PATCH 1/4] prepare for publish --- .jshintrc | 59 -------------- Makefile | 17 ---- README.md | 60 -------------- build.js | 21 ----- config.js | 25 ------ lib/atom.js | 70 ---------------- lib/fetch-http.js | 38 --------- lib/fetcher.js | 40 --------- lib/ghauth.js | 84 ------------------- lib/logger.js | 82 ------------------- lib/main.js | 178 ----------------------------------------- lib/output.js | 13 --- lib/process-github.js | 65 --------------- lib/process-source.js | 84 ------------------- lib/process-tweets.js | 29 ------- lib/sizer.js | 25 ------ lib/stats.js | 51 ------------ lib/strings.js | 22 ----- lib/validator.js | 30 ------- lib/xml.js | 29 ------- package.json | 27 ------- resources/icons.png | Bin 701 -> 0 bytes resources/icons.psd | Bin 36313 -> 0 bytes resources/icons@2x.png | Bin 1758 -> 0 bytes 24 files changed, 1049 deletions(-) delete mode 100644 .jshintrc delete mode 100644 Makefile delete mode 100644 README.md delete mode 100755 build.js delete mode 100644 config.js delete mode 100644 lib/atom.js delete mode 100644 lib/fetch-http.js delete mode 100644 lib/fetcher.js delete mode 100644 lib/ghauth.js delete mode 100644 lib/logger.js delete mode 100644 lib/main.js delete mode 100644 lib/output.js delete mode 100644 lib/process-github.js delete mode 100644 lib/process-source.js delete mode 100644 lib/process-tweets.js delete mode 100644 lib/sizer.js delete mode 100644 lib/stats.js delete mode 100644 lib/strings.js delete mode 100644 lib/validator.js delete mode 100644 lib/xml.js delete mode 100644 package.json delete mode 100755 resources/icons.png delete mode 100755 resources/icons.psd delete mode 100644 resources/icons@2x.png diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 446c1378a..000000000 --- a/.jshintrc +++ /dev/null @@ -1,59 +0,0 @@ -{ - "predef": [] - , "bitwise": false - , "camelcase": false - , "curly": false - , "eqeqeq": false - , "forin": false - , "immed": false - , "latedef": false - , "newcap": true - , "noarg": true - , "noempty": true - , "nonew": true - , "plusplus": false - , "quotmark": true - , "regexp": false - , "undef": true - , "unused": true - , "strict": false - , "trailing": true - , "asi": true - , "boss": true - , "debug": true - , "eqnull": true - , "esnext": true - , "evil": true - , "expr": true - , "funcscope": false - , "globalstrict": false - , "iterator": false - , "lastsemic": true - , "laxbreak": true - , "laxcomma": true - , "loopfunc": true - , "multistr": false - , "onecase": false - , "proto": false - , "regexdash": false - , "scripturl": true - , "smarttabs": false - , "shadow": false - , "sub": true - , "supernew": false - , "validthis": true - , "browser": true - , "couch": false - , "devel": false - , "dojo": false - , "mootools": false - , "node": true - , "nonstandard": true - , "prototypejs": false - , "rhino": false - , "worker": true - , "wsh": false - , "nomen": false - , "onevar": true - , "passfail": false -} \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index a6dd31142..000000000 --- a/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -remotehost = microjs -remotepath = /home/madrobby/htdocs/microjs.com/ -scpfiles = index.html data-min.js data.js atom.xml - -compile: deps - @./build.js - -deps: - @npm install - -deploy: compile - scp $(scpfiles) $(remotehost):$(remotepath) - -# fully quiet except on a nasty error -autodeploy: - @./build.js -q - @scp -q $(scpfiles) $(remotehost):$(remotepath) diff --git a/README.md b/README.md deleted file mode 100644 index cfcf1c10e..000000000 --- a/README.md +++ /dev/null @@ -1,60 +0,0 @@ -Fantastic Micro-Frameworks and Micro-Libraries for Fun and Profit! ------ - -How much library code do you really need — *50K? 100K? 150K? More?* -How much of that do you really use? - -Sure, we all love our favorite monolithic frameworks, and sometimes we even -use them fully. But how often do we reach for the ride-on John Deere tractor -with air conditioning and six-speaker sound system, when a judiciously -applied pocketknife would do the trick better, faster, slicker? - -Micro-frameworks are definitely the pocketknives of the JavaScript library -world: short, sweet, to the point. And at 5k and under, micro-frameworks are -very very portable. A micro-framework does one thing and one thing only — -and does it well. No cruft, no featuritis, no feature creep, no excess anywhere. - -MicroJS.com helps you discover the most compact-but-powerful microframeworks, -and makes it easy for you to pick one that’ll work for you. - -## Submitting new libraries and frameworks - -Want to add your own? Fork this site on GitHub, add your framework to "data.js" and submit a pull request.. - -### Rules - - * Must not have dependencies (It's ok to target a specific platform, like Node.js or WebKit) - * Must do something useful, and must not be just a demo - * Must be MIT/BSD-license or similar **permissive license** - * Templating engines and loaders will only be added if they're outstanding and exceptional - * Must be < 5k when minified and gzipped (see below) - * Source file must be available for download and not change across releases (e.g. *awesomesauce-1.1.0.js*) - * Prefer hand-coded/hand-optimized JavaScript over generated/cross-compiled code - -To check the minified and compressed size of your library from the command line, either use `./build.js -v` (see below) or run: - - $ uglifyjs yourlib.js | gzip -9f | wc -c - -### How to add - - * Add your library to "data.js", pick a **random** point in the file (this helps with merging many contributions) and enter the required attributes: `'name'`, `'tags'`, `'url'`, `'source'` - * The a `'url'` should point to wherever you host your README or docs and where code is downloaded code-download - * If the `'url'` is not a GitHub address but your project is hosted there, add a `'github'` field with your username & lib name, e.g. `'timrwood/moment'` so the builder can collect GitHub stats - * The `'source'` attribute must point to a single-file, or an array of files that can be concatenated to form your complete library in a ready-to-use form. The `'source'` **must not be minified** (see below) - * Running `make` should work and not return an error. To run make, you'll need node installed - -*If your source very small, you can simply included the whole thing in the source attribute as a string. If your source is split across multiple files, you can use an array of URLs (it's preferrable to just have a single source). If your source is released in a ZIP file you can point to the ZIP's URL and append a `!/zip/entry.js` to the end so the compiler knows where to look (it's still preferrable to just have a single source URL!)* - -### Using make / build ### - -The builder reads *data.js* and checks the *source* of each entry. It will calculate the raw, minified and gzipped sizes of the entries. - -You will see **warnings** where entries need to be checked and **errors** where entries will be excluded. - -If you wish to see details of all entries, you can run the `./build -v` command. - -## All rights reserved ### - -Please note that MicroJS.com is a curated site and that we reserve the right to refuse any listing for any reason. - -The [microjs.com](http://microjs.com) code/website is released under a MIT License. \ No newline at end of file diff --git a/build.js b/build.js deleted file mode 100755 index 2e3e3f2ab..000000000 --- a/build.js +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node - -// see lib/main.js for info - -const ghAuth = require('./lib/ghauth') - , main = require('./lib/main') - , stats = require('./lib/stats') - -const config = require('./config') - -config.verbose = process.argv.indexOf('-v') > -1 -config.quiet = process.argv.indexOf('-q') > -1 - -if (process.argv.indexOf('-s') > -1) - return stats(config) - -ghAuth(config, function (err) { - if (err) - throw err - main(config) -}) \ No newline at end of file diff --git a/config.js b/config.js deleted file mode 100644 index c5d0fb5d9..000000000 --- a/config.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - inFile : 'data.js' - , outFile : 'data-min.js' - // for now; need to tweak this later - , githubLastPushCutoffMonths : 48 - , sizeExceptions : [ - 'Backbone' - , 'Zepto' - ] - , minifyExceptions : [ - 'cm.js' - ] - , errorCountThreshold : 10 - , maxGzipped : 5 * 1024 - // these 3 are basic sanity cecks, minimums that we would expect the contents - // to be, otherwise something might be wrong - , minRaw : 300 - , minMinified : 150 - , minGzipped : 100 - // this is to compare raw with minified, if it's too close then we may have - // been given the minified source in the first place - , minifierTollerance : 50 - // give them this much wriggle room with the reported 'size' vs actual gzipped size - , expectedTolleranceFraction : 0.5 -} \ No newline at end of file diff --git a/lib/atom.js b/lib/atom.js deleted file mode 100644 index 08c636fde..000000000 --- a/lib/atom.js +++ /dev/null @@ -1,70 +0,0 @@ -const uuid = require('node-uuid') - , fs = require('fs') - , memo = require('async-memo') - , moment = require('moment') - , xml = require('./xml') - -const file = 'atom.xml' - , footRegex = /(\n<\/feed>\n?)/ - , dateStr = moment.utc().format('YYYY-MM-DD\'T\'HH:mm:ssZ') - , entryTemplate = - '\t\n' - + '\t\t{xmlEncodedName}\n' - + '\t\t\n' - + '\t\turn:uuid:{atomUuid}\n' - + '\t\t{atomDate}\n' - + '\t\t{xmlEncodedDescription}\n' - + '\t\n\n' - + '$1' - // memoize so we only read once, but keep contents global so we can edit it - , fileContents = memo( - function (callback) { - fs.readFile(file, 'utf-8', function (err, _contents) { - contents = _contents - callback(err) - }) - }) - -var contents - -function escapeRegExp (string) { - return string.replace(/[\-\[\]\{\}\(\)*+?.\\\^$|,#\s]/g, function (match) { return '\\' + match }) -} - -function exists (contents, lib) { - return new RegExp(escapeRegExp('' + lib.xmlEncodedName + '')).test(contents) -} - -function t (s, d) { - for (var p in d) - s = s.replace(new RegExp('{' + p + '}', 'g'), d[p]) - return s -} - -function processLibrary (lib, callback) { - fileContents(function (err) { - if (err) - throw err - - lib.xmlEncodedName = xml.encodeXmlEntities(lib.name) - if (exists(contents, lib)) - return callback() - - lib.atomUuid = uuid.v1() - lib.atomDate = dateStr - lib.xmlEncodedDescription = xml.encodeXmlEntities(lib.description) - contents = contents.replace(footRegex, t(entryTemplate, lib)) - ;delete lib.atomUuid - ;delete lib.atomDate - ;delete lib.xmlEncodedName - ;delete lib.xmlEncodedDescription - callback() - }) -} - -function write (callback) { - fs.writeFile(file, contents, 'utf-8', callback) -} - -module.exports.processLibrary = processLibrary -module.exports.write = write \ No newline at end of file diff --git a/lib/fetch-http.js b/lib/fetch-http.js deleted file mode 100644 index e0b10006e..000000000 --- a/lib/fetch-http.js +++ /dev/null @@ -1,38 +0,0 @@ -const hyperquest = require('hyperzip')(require('hyperdirect')) - , bl = require('bl') - -const maxConcurrent = 25 - -var queue = [] - , inFlight = 0 - -function go () { - if (inFlight > maxConcurrent || !queue.length) - return - - var req = queue.shift() - inFlight++ - hyperquest(req.url, req.options).pipe(bl(function () { - inFlight-- - process.nextTick(go) - req.callback.apply(this, arguments) - })) - process.nextTick(go) -} - -function fetch (url, options, callback) { - if (typeof options == 'function') { - callback = options - options = {} - } - - queue.push({ - url : url - , options : options - , callback : callback - }) - - go() -} - -module.exports = fetch \ No newline at end of file diff --git a/lib/fetcher.js b/lib/fetcher.js deleted file mode 100644 index 3bcc39603..000000000 --- a/lib/fetcher.js +++ /dev/null @@ -1,40 +0,0 @@ -const zip = require('zip') - , fetchHttp = require('./fetch-http') - -function unzip (zipEntry, buffer) { - var reader = zip.Reader(buffer) - , data = null - - // iterate through zipfile entries looking for the right name - reader.forEach(function(entry) { - if (zipEntry === entry._header.file_name) { - data = entry._stream.toString(); - } - }) - return data -} - -function fetch (sourceUrl, zipEntry, callback) { - fetchHttp( - sourceUrl - , { headers: { 'User-Agent': 'microjs.com-build-script' } } - , function (err, content) { - if (err) - return callback(err) - - if (zipEntry) { - try { - content = unzip(zipEntry, content) - } catch (e) { - return callback('unzip error' + e) - } - - if (!content) - return callback('could not find entry ' + zipEntry + ' inside zip file') - } - - callback(null, content.toString()) - }) -} - -module.exports = fetch \ No newline at end of file diff --git a/lib/ghauth.js b/lib/ghauth.js deleted file mode 100644 index 70fe3b5ae..000000000 --- a/lib/ghauth.js +++ /dev/null @@ -1,84 +0,0 @@ -const read = require('read') - , colors = require('colors') - , hyperquest = require('hyperquest') - , bl = require('bl') - , path = require('path') - , fs = require('fs') - , mkdirp = require('mkdirp') - -function createAuth (config, callback) { - var req = hyperquest( - 'https://api.github.com/authorizations' - , { - headers : { - 'X-GitHub-OTP' : config.ghOtp || null - , 'User-Agent' : 'microjs.com-build-script' - } - , method : 'post' - , auth : config.ghUser + ':' + config.ghPass - } - ) - req.pipe(bl(function (err, data) { - if (err) - return callback(err) - data = JSON.parse(data.toString()) - if (data.message) - return callback(new Error(data.message)) - if (!data.token) - return callback(new Error('No token from GitHub!')) - - config.ghToken = data.token - callback() - })) - req.end(JSON.stringify({ note: 'microjs.com build script'})) -} - -function prompt (config, callback) { - console.log('To collect GitHub stats we need you to authenticate so we can exceed API rate-limiting.'.bold.green) - console.log('Leave the username field blank to skip stats collection.'.bold.green) - console.log() - - read({ prompt: 'GitHub username:'.bold }, function (err, data) { - if (err) return callback(err) - if (data === '') return callback() - config.ghUser = data - read({ prompt: 'GitHub password:'.bold, silent: true, replace: '\u2714' }, function (err, data) { - if (err) return callback(err) - config.ghPass = data - read({ prompt: 'GitHub OTP (optional):'.bold }, function (err, data) { - if (err) return callback(err) - config.ghOtp = data - callback() - }) - }) - }) -} - -function auth (config, callback) { - var configPath = path.join(process.env.HOME || process.env.USERPROFILE, '.config', 'microjsauth.json') - , authData - mkdirp.sync(path.dirname(configPath)) - - try { - authData = require(configPath) - if (authData.user && authData.token) { - config.ghToken = authData.token - config.ghUser = authData.user - return callback() - } - } catch (e) {} - - prompt(config, function (err) { - if (err) - return callback(err) - - createAuth(config, function (err) { - if (err) - return callback(err) - fs.writeFileSync(configPath, JSON.stringify({ user: config.ghUser, token: config.ghToken }), 'utf8') - callback() - }) - }) -} - -module.exports = auth \ No newline at end of file diff --git a/lib/logger.js b/lib/logger.js deleted file mode 100644 index 161ef7b9b..000000000 --- a/lib/logger.js +++ /dev/null @@ -1,82 +0,0 @@ -const colors = require('colors') - , errno = require('errno') - , strings = require('./strings') - -const ERROR = 'error' - , WARNING = 'warning' - , SUCCESS = 'success' - // how many characters for the progress bar, minus totals - , PROGRESS_BAR_LENGTH = 75 - -function makeMsg (err) { - var message - if (err && err.message) - message = err.message - else - message = String(err || '') - if (err && err.errno && errno.errno[err.errno]) - message += ' (' + errno.errno[err.errno].description + ')' - return message -} - -// this isn't pretty, all in the name of making the output pretty! -// use ANSI codes to move the cursor around and clear lines so we -// can get a progress bar constantly at the bottom - -function Logger (config) { - if (!(this instanceof Logger)) - return new Logger(config) - - this.verbose = config.verbose - this.quiet = config.quiet -} - -[ ERROR, WARNING, SUCCESS ].forEach(function (type) { - Logger.prototype[type] = function (libName, err, libSource) { - this.log(type, libName, err, libSource) - } -}) - -Logger.prototype.log = function (type, libName, err, libSource) { - if (this.quiet) - return - - var message = makeMsg(err) - - if (this.last == 'progress') - process.stdout.write('\033[1F\033[0K') - if (type !== SUCCESS || this.verbose) { - process.stdout.write( - strings.rpad((type.toUpperCase() + ':'), 8)[type === ERROR ? 'red' : type === WARNING ? 'yellow' : 'green'] - + ' ' + strings.rpad(libName || 'UNKNOWN LIBRARY', 20).bold - + ' ' + message - + '\n' - ) - if (libSource) - console.log(strings.lpad('', 8), Array.isArray(libSource) ? libSource.join(', ') : libSource) - } - this.last = 'log' -} - -Logger.prototype.progress = function (completed, total) { - if (this.quiet) - return - - var frac = completed ? completed / total : 0 - , perc = Math.round(frac * 100) - , ps = '|' - + strings.rpad( - strings.lpad('', Math.round(frac * PROGRESS_BAR_LENGTH), '=') + '>' - , PROGRESS_BAR_LENGTH) - + '| ' + perc + '%' // (' + completed + '/' + total + ')' - - if (this.last == 'progress') - process.stdout.write('\033[1F\033[0K') - console.log(ps.green.bold) - this.last = 'progress' -} - -module.exports = Logger -module.exports.ERROR = ERROR -module.exports.WARNING = WARNING -module.exports.SUCCESS = SUCCESS \ No newline at end of file diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 4e5238f86..000000000 --- a/lib/main.js +++ /dev/null @@ -1,178 +0,0 @@ -const path = require('path') - , colors = require('colors') - , map = require('map-async') - , after = require('after') - , moment = require('moment') - , xtend = require('xtend') - , processSource = require('./process-source') - , processTweets = require('./process-tweets') - , processGithub = require('./process-github') - , Logger = require('./logger') - , strings = require('./strings') - , output = require('./output') - , atom = require('./atom') - -process.on('uncaughtException', function (err) { - console.log(('Uncaught exception: ' + err).red,'\n') - console.log(err.stack) -}) - -function processLib (config, logger, _lib, callback) { - function warn (msg) { - logger.warning(_lib.name, msg) - } - - function _done (err) { - if (err) { - logger.error(lib.name, err) - return callback() - } - - var tooold = lib.ghlastpush && moment(lib.ghlastpush).isBefore( - moment().subtract('months', config.githubLastPushCutoffMonths)) - - if (tooold) { - warn('Too old! Last pushed to GitHub @ ' - + moment(lib.ghlastpush).format('DD/MMM/YY') - + ', ignoring' - + ' [' + lib.ghlastpush + '] vs [' + config.ghLastPushCutoff + ']' - ) - return callback() - } - - atom.processLibrary(lib, function (err) { - if (err) { - console.error(('Error processing Atom feed data: ' + err).red) - return process.exit(-1) - } - - logger.success( - lib.name - , 'raw: ' + strings.lpad(strings.sizeToString(sizes.raw), 8) - + ', minified: ' + strings.lpad(strings.sizeToString(sizes.minified), 7) - + ', gzipped: ' + strings.lpad(strings.sizeToString(sizes.gzipped), 6) - + ', watchers: ' + strings.lpad(ghstats ? lib.ghwatchers : '-', 5) - + ', forks: ' + strings.lpad(ghstats ? lib.ghforks : '-', 5) - + ', tweets: ' + strings.lpad(lib.tweets, 5) - ) - - // cleanup so we don't waste space - lib.ghlastpush = lib.source = lib.github = lib.novalidate = undefined - - callback(null, lib) - }) - } - - var lib = xtend(_lib) - , sizes - , ghstats - , done = after(3, _done) - - processSource(config, lib, function (err, _sizes) { - if (err) - return done(err) - sizes = _sizes - lib.size = strings.sizeToString(sizes.gzipped) - done() - }).on('warning', warn) - - processTweets(config, lib, function (err, twstats) { - if (err) - return done(err) - lib.tweets = strings.prettyLong(twstats.count) - done() - }).on('warning', warn) - - processGithub(config, lib, function (err, _ghstats) { - if (err) - return done(err) - - ghstats = _ghstats - if (ghstats) { - lib.ghwatchers = strings.prettyLong(ghstats.watchers) - lib.ghforks = strings.prettyLong(ghstats.forks) - lib.ghlastpush = ghstats.lastPush - } - - done() - }).on('warning', warn) -} - -function finish (config, logger, data) { -/* - if (err) { - console.log(('Error writing to output file: ' + err).red.bold) - return process.exit(1) - } - this.atom.write(function (err) { - if (err) { - console.log(('Error writing to Atom file: ' + err).red.bold) - return process.exit(1) - } - - if (!this.quiet) - console.log('All done and ready to deploy!'.green.bold + ' (' + this.outList.length + ' of ' + this.data.length + ' libs included)') - - process.nextTick(function () { - if (this.errorCount > this.errorCountThreshold) { - console.log(('Encountered ' + this.errorCount + ' errors').red) - process.exit(1) - } else - process.exit(0) - }.bind(this)) - }.bind(this)) - }.bind(this)) -*/ - - var outData = data.filter(Boolean) - - output(config.outFile, outData, function (err) { - if (err) { - console.errr(('Error writing to output file: ' + err).red.bold) - return process.exit(-1) - } - - atom.write(function (err) { - if (err) { - console.log(('Error writing to Atom file: ' + err).red.bold) - return process.exit(-1) - } - - if (!this.quiet) { - console.log( - 'All done and ready to deploy!'.green.bold - + ' (' - + outData.length - + ' of ' - + data.length - + ' libs included)' - ) - } - }) - }) -} - -function main (config) { - var logger = new Logger(config) - , data = require(path.join(__dirname, '..', config.inFile)) - , completed = 0 - - logger.progress(0, data.length) - - function each (lib, i, callback) { - processLib(config, logger, lib, function (err, lib) { - logger.progress(++completed, data.length) - callback(err, lib) - }) - } - - function done (err, data) { - if (err) - return console.error(err.red) - finish(config, logger, data) - } - - map(data, each, done) -} - -module.exports = main \ No newline at end of file diff --git a/lib/output.js b/lib/output.js deleted file mode 100644 index 68b8af4a8..000000000 --- a/lib/output.js +++ /dev/null @@ -1,13 +0,0 @@ -const fs = require('fs') - -const HEAD = 'var MicroJS=' - , FOOT = ';' - -// write out the data, effectively minified by JSON.stringify - -function output (outFile, data, callback) { - data = HEAD + JSON.stringify(data) + FOOT - fs.writeFile(outFile, data, 'utf8', callback) -} - -module.exports = output \ No newline at end of file diff --git a/lib/process-github.js b/lib/process-github.js deleted file mode 100644 index fd2bb3b99..000000000 --- a/lib/process-github.js +++ /dev/null @@ -1,65 +0,0 @@ -const EventEmitter = require('events').EventEmitter - , fetchHttp = require('./fetch-http') - -const githubSpecRegex = /^([^\/]+)\/(.*)$/ - , repoRegex = /github.com\/([\.\-\w]+)\/([^$\/]+)/ - , GIT_API_REPO_URL = 'https://api.github.com/repos/{user}/{project}' - -function processRepo (config, ee, lib, user, project, callback) { - var url = GIT_API_REPO_URL.replace('{user}', user).replace('{project}', project) - , headers = { 'User-Agent' : 'microjs.com-build-script' } - , auth = config.ghUser + ':' + config.ghToken - - function handle (err, content) { - if (err) - return callback('Error requesting repo data from GitHub for ' + user + '/' + project + ': ' + err) - - var data = JSON.parse(content.toString()) - if (typeof data.forks == 'number' && typeof data.watchers == 'number') { - return callback(null, { - forks: data.forks - , watchers: data.watchers - , url: data.html_url - , lastPush: data.pushed_at - //, user: user - //, project: project - }) - } - - ee.emit( - 'warning' - , typeof data.message == 'string' - ? 'GitHub says: ' + data.message - : 'Looks like a GitHub project but can\'t get data from GitHub API' - ) - callback() - } - - fetchHttp(url, { auth: auth, headers: headers }, handle) -} - -function processGithub (config, lib, callback) { - var ee = new EventEmitter() - , match - - if (!config.ghUser) { - process.nextTick(callback) - return ee - } - - if (lib.github) - match = lib.github.match(githubSpecRegex) - if (!match) - match = lib.url.match(repoRegex) - if (!match) - match = lib.source.match(repoRegex) - - if (match && match[1] != 'gist') - processRepo(config, ee, lib, match[1], match[2], callback) - else - process.nextTick(callback) - - return ee -} - -module.exports = processGithub \ No newline at end of file diff --git a/lib/process-source.js b/lib/process-source.js deleted file mode 100644 index 349497a8d..000000000 --- a/lib/process-source.js +++ /dev/null @@ -1,84 +0,0 @@ -const EventEmitter = require('events').EventEmitter - , map = require('map-async') - , fetch = require('./fetcher') - , sizer = require('./sizer') - , validator = require('./validator') - -function processSource (ee, lib, source, callback) { - var match - , zipEntry - - if (/\d\.\d/.test(source)) - ee.emit('warning', 'appears to have a versioned source, please check that it is current') - - // whoa, source is in the source - if (!/^(http|ftp)/.test(source) && /function/.test(source)) { - lib.novalidate = true - return callback(null, source) - } - - // source is a zip with a bang-path to the file within the zip? - if (match = source.match(/^(.*\.zip)!\/(.*$)/)) { - source = match[1] - zipEntry = match[2] - } - - fetch(source, zipEntry, function (err, d) { - if (err) - return callback(err) - callback(null, d) - }) -} - -function complete (config, lib, data, callback) { - var err = validator.raw(data) - if (err) - return callback(err) - - // phew, we got this far, now calculate the 3 sizes and get to success() - sizer(data, function (err, sizes) { - if (err) - return callback(err) - - var insane = !lib.novalidate && validator.size(config, lib, sizes) - if (insane) - return callback(insane + ', ignoring') - - // holy moly! we got here? - callback(null, sizes) - }) -} - -function processLib (config, lib, callback) { - var ee = new EventEmitter() - - if (!lib.name) { - process.nextTick(callback.bind(null, 'library has no name, ignoring')) - return ee - } - - if (!lib.source) { - process.nextTick(callback.bind(null, 'has no source, ignoring')) - return ee - } - - // this is slightly awkward so we can support arrays of sources, otherwise - // it'd be simple, but who wants simple? - // concat all the file contents together and we do it in series because - // order may matter for minification - map( - Array.isArray(lib.source) ? lib.source : [ lib.source ] - , function (source, i, callback) { - processSource(ee, lib, source, callback) - } - , function (err, sources) { - if (err) - return callback(err) - complete(config, lib, sources.join('\n'), callback) - } - ) - - return ee -} - -module.exports = processLib \ No newline at end of file diff --git a/lib/process-tweets.js b/lib/process-tweets.js deleted file mode 100644 index 62fc2f893..000000000 --- a/lib/process-tweets.js +++ /dev/null @@ -1,29 +0,0 @@ -const EventEmitter = require('events').EventEmitter - , fetchHttp = require('./fetch-http') - -const TWITTER_API_URL = 'http://urls.api.twitter.com/1/urls/count.json?url={url}' - -function processTweets (config, lib, callback) { - var ee = new EventEmitter() - - fetchHttp( - TWITTER_API_URL.replace('{url}', encodeURIComponent(lib.url)) - , function (err, content) { - if (err) - return callback('Error requesting tweet count from Twitter for ' + lib.url + ': ' + err) - - var data = JSON.parse(content.toString()) - - if (typeof data.count == 'number') { - callback(null, data) - } else { - ee.emit('warning', 'Couldn\'t get tweet count from Twitter API') - callback() - } - } - ) - - return ee -} - -module.exports = processTweets \ No newline at end of file diff --git a/lib/sizer.js b/lib/sizer.js deleted file mode 100644 index b8ee0aa88..000000000 --- a/lib/sizer.js +++ /dev/null @@ -1,25 +0,0 @@ -const minify = require('uglify-js').minify - , gzip = require('zlib').gzip - -// calculate the 3 sizes, raw, minified & gzipped -function sizer (source, callback) { - var minified - - try { - minified = minify(source, { fromString: true }).code - } catch (ex) { - return callback('Uglify error: ' + (ex && ex.message ? ex.message : ex)) - } - - gzip(minified, function(err, data) { - if (err) return callback(err) - - callback(null, { - raw: source.length - , minified: minified.length - , gzipped: data.length - }) - }) -} - -module.exports = sizer \ No newline at end of file diff --git a/lib/stats.js b/lib/stats.js deleted file mode 100644 index 25ba346f9..000000000 --- a/lib/stats.js +++ /dev/null @@ -1,51 +0,0 @@ -const path = require('path') - , colors = require('colors') - , fs = require('fs') - , strings = require('./strings') - -function stats (config) { - var data = require(path.join(__dirname, '..', config.inFile)) - , byTag = {} - , byCount = {} - , byMainTag = {} - , optReg = /,? \{ tag: '([^']+)', label: '([^']+)' \}/gm - , contents = String(fs.readFileSync('index.html', 'utf-8')) - , mainTags = String(contents).match(optReg).map(function (o) { return o.match(new RegExp(optReg.source))[1] }) - , pushTag = function (hash, tag, d) { - (hash[tag] || (hash[tag] = [])).push(d) - } - - data.forEach(function (d) { - d.tags && d.tags.forEach(function (tag) { - pushTag(byTag, tag, d) - mainTags.indexOf(tag) != -1 && pushTag(byMainTag, tag, d) - }) - }) - - console.log('TAG COUNTS'.green.bold, ' (all tags found in data.js)') - console.log(strings.rpad('Count', 7).yellow.bold, 'Tags'.bold) - console.log('------------'.bold) - - Object.keys(byTag).forEach(function (tag) { - (byCount[byTag[tag].length] || (byCount[byTag[tag].length] = [])).push(tag) - }) - - Object.keys(byCount).sort(function (x, y) { return x - y }).forEach(function (count) { - console.log(strings.rpad(String(count), 7).yellow.bold, byCount[count].sort().join(', ')) - }) - - console.log('\nMAIN TAGS'.green.bold, ' (only tags used in index.html)') - console.log(strings.rpad('Tag', 13).yellow.bold, 'Count Libs'.bold) - console.log('-------------------------'.bold) - - mainTags.forEach(function (tag) { - var h = byMainTag[tag] - console.log( - strings.rpad(tag, 13).yellow.bold - , strings.rpad(String(h ? h.length : 0), 6).bold - , h ? h.map(function (d) { return d.name }).sort().join(', ') : '' - ) - }) -} - -module.exports = stats \ No newline at end of file diff --git a/lib/strings.js b/lib/strings.js deleted file mode 100644 index 02b9d74cb..000000000 --- a/lib/strings.js +++ /dev/null @@ -1,22 +0,0 @@ -// some basic utils - -module.exports = { - rpad: function (s, len, ch) { - ch = ch || ' ' - while (s.length < len) s += ch - return s - } - , lpad: function (s, len, ch) { - ch = ch || ' ' - while (s.length < len) s = ch + s - return s - } - // note this is kilobytes, so 1024, rounded to 1dp - , sizeToString: function (size) { - size = Math.round(size / 1024 * 10) / 10 - return size + ' kB' - } - , prettyLong: function (i) { - return String(i).replace(/(\d)(\d{3})$/, '$1,$2') - } -} \ No newline at end of file diff --git a/lib/validator.js b/lib/validator.js deleted file mode 100644 index 111f2cb86..000000000 --- a/lib/validator.js +++ /dev/null @@ -1,30 +0,0 @@ -var sizeToString = require('./strings').sizeToString - -function raw (data) { - var len = data.trim().length - , js = data.split('{').length - , html = data.split(/<\s*\w+/).length - - if (len === 0) - return 'zero-length source' - if (js < html && data.indexOf('') > -1) - return 'source looks like HTML' -} - -function size (config, lib, sizes) { - var exception = config.minifyExceptions.indexOf(lib.name) > -1 - - if (!exception && Math.abs(sizes.raw - sizes.minified) <= config.minifierTollerance) - return 'source seems to be already minified (link to unminified source)' - if (!exception && sizes.raw <= config.minRaw) - return 'raw size is suspiciously small: ' + sizeToString(sizes.raw) - if (!lib.tinyminify && sizes.minified <= config.minMinified) - return 'minified size is suspiciously small: ' + sizeToString(sizes.minified) - if (sizes.gzipped <= config.minGzipped) - return 'gzipped size is suspiciously small: ' + sizeToString(sizes.gzipped) - if (config.sizeExceptions.indexOf(lib.name) == -1 && sizes.gzipped > config.maxGzipped) - return 'gzipped file too big, ' + sizeToString(sizes.gzipped) + ' is not "micro"' -} - -module.exports.raw = raw -module.exports.size = size \ No newline at end of file diff --git a/lib/xml.js b/lib/xml.js deleted file mode 100644 index 2942e8af0..000000000 --- a/lib/xml.js +++ /dev/null @@ -1,29 +0,0 @@ -function getXmlEntity (character) { - switch (character) { - case '"': - return '"' - case '&': - return '&' - case '\'': - return ''' - case '<': - return '<' - case '>': - return '>'; - } -} - -/** - * Finds all characters that should be replaced by XML entities. - */ -var characterFinder = /[&"'<>]/g; - -/** - * Replaces the following characters to their XML entities: ", &, ', < and >. Returns the input with said characters - * replaced. - */ -function encodeXmlEntities (input) { - return input.replace(characterFinder, getXmlEntity); -} - -module.exports.encodeXmlEntities = encodeXmlEntities \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index 3b2926eca..000000000 --- a/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "microjs.com", - "author": "", - "version": "1.0.0", - "private": true, - "dependencies": { - "colors": "~0.6.2", - "uglify-js": "~2.4.8", - "zip": "~1.1.1", - "node-uuid": "~1.4.1", - "errno": "~0.1.0", - "read": "~1.0.5", - "hyperquest": "~0.1.8", - "bl": "~0.6.0", - "moment": "~2.5.0", - "map-async": "~0.1.1", - "after": "~0.8.1", - "xtend": "~2.1.1", - "async-memo": "0.0.1", - "mkdirp": "~0.3.5", - "hyperzip": "0.0.0", - "hyperdirect": "0.0.0" - }, - "engines": { - "node": "*" - } -} diff --git a/resources/icons.png b/resources/icons.png deleted file mode 100755 index 96460784a266f10d0727a0ce7c50c7cbf3f32e31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&)=0)& zR3z{~!iELlYtMY<)>z|7f&{z(k=|@bI;=@dK?FY29D|I7sm3s_0gttjE=ak=1_fg9 zS%bBy5+G;>)(EsZe?zdszk!3GqxEzQfzt|nLBLnwKI{o_!7*4dGJch-w_3z>O1fOoHWEE;1u`-UV~9dunQamJB?_u+#of=Td^g41OMO|AKS*%|E7n$MLTV#{dW4w|CC*38^n@CJ;# z2rjVsqLzCE*1>{JFbi%`Z~{#5Mm|cx64;h6;IEVKAOuIiSLXhJOR|8laGglGF`HmQ zDBQu^Y<(Zpf?Dvu3Y-FkJfRZ|0ks-+a?{X7}RL z@(K`v3#t$i!jIWR+NJEm7TnAJqRx8vBQYYqDE96RTV)eifu~bz;CW0HYBSQGJ7hT1` zkW?(-7w6{jMJf%+j|mrqNd&P1eylKD7!@5C7uSy;DG&-G1d$QK$S`4CVpL?JK)^R1 zAxW;_8laJuCg!JS8lwYhU`V-6r%sHBsH&<8uZjv+Y04sm2?+^UO=M&k_z2V1D0SlM zFr~JeK?$QLozzM+GPO>oQu480afwQ=8yFITBQhPvd@0nXh?LrJI*;KJl_H{Atd0aVOBvGUx#X6OyP^FS58FHRiuF|Qr{#^=^*etcgq) z>&PU)Co)U`;KURPqZ5UKL}7Gap%75AP-5_Dqazo}LMqmY87)y^f~YWIbfGXIF)}(a zCa$l*ti{T&tsa$BR$BABw3vMwbqt8WAX|V=mng=|hX1s}kV;Htq1J2UbdgIX5u}_{ zkV>5v%0p;f9#TnSsY;^|>ypH3wOl3<<06l!R7#Bnsb)%MK!n-rpPgzb<=k9T!rL?= zg(9LYf+WW@9&+WNvO^woF1SMADXJ9n{(;K$fnO=rQz0wNg+U zm712C8j}zm9~l#uAruPZqodQ)(_%9-BV#iY;xb|wwH85JsU513K~p4_Tlm4L{#Vqu zp`ukZSu!nD)EdSb4K<&($pUhmHJ33~xs0|^wOFGiG4caL80anA0fQzShAzQGu>{*) zk_5L5q;x=p71x|B+hDTRh4yrG4Z1CYK3RWNIjOYQvKUm+zMiZ^t18u1i8W+u8Q4J^ z4PG>VgiI+_RcV=QTL-XJY-lUwvi|`5T5;tc1V8O*rv1mjj}jzCM>5U&{|5MGi&?xX6Tz%!H_z=yZW79XCb)UU@}_MM4J} zl^7kL7!}_aI%C`oJId=1*RRa9|7>~1#3#lG9p%MzM}N4y1j46{ApVW|Wj#O@2$=!u zpHjc9M&AaF_PeA1V=dy-$9#Xd#LQEQzj=unMk3ZDL1yr3GjjaXCOD?~NZW&cleqQF z(52V6FQ*e4xu z*~iC5>VV4z5c{M9F8lb{NF8w50AinXz-1pF8>s^>8$j%n4!G>&VJ;aM{Pl zM(Tje1`zwC11|gc*hn34*#KgnbiidF9~-FyE*n7XlMcA-<6|Rrz-0r7ebND!eSB=B z4!CRpu}?bSvX76A)B%?bAofYSaJiaazbBRO&V3cUTu;B9pGd#CzYnh7a2mb>;HK8V zo8v?EI<;O0O!~$DJgu&v1YR|#ePki^YOel3`BBw;IHA#k)=_*Y`hC-fhA^;_`>NH73+0c@)5{RF`i9iV6gb=}v{@_Bs zl+Tx{^d%{(OISo7gEY!kyfk@he`y+N;c%rcvs=C#mz?QHlS}z+@$Ewv{t^Q5ozC3&(j)UPz@;a;c_E4A>-G^v!-7`{sp zKufy7)dLlR0f~_k3`k9z8VPO*sxj)gP5T7x6h*rbk`e|TF*NN1S17Dj($2J$t|D|Q zJxp{pO}97ET`V$psZXl@pYC@lqv9IiZ?Ll`;B7cDk% zB0)l+QE+Aa;B*sEHB1~@=R=?oAOJaO>tO$k#cfF_>W|21EU;?)(GV_8;g5$PH;lV8VTQVAT4}212eT$M`|p1s6Z{T)Z(g;DTl(xO=P+nqc2?Qt_pFr zH5Zo=N|P&djlP`d{6t|c3tLd@G`nJ%O`2UwHPD6@=t#A78)D2Rh85?8)Znj!7-RAW zrkj*hsvxCiHmex>rPbx*4+h{yCka@FgQJrv$lo6Y4)la5oTYk541Ag3cWY~>ezG># zDwU=pTUq#LrOplOgU;?>QfM!MC`Y8!S(uAgnOs#OmP6|#smOs(K@`bz=++am=u$4$ z=Bh9>v=P$w5RH*UnQ*qY2fEJK*n_{eoFwVg%VkQ^*uODx&>C_3XY9slx&tOz_u+!; zMC({^H{@I*){+*TH5UyxcETV;Jou1}QmVBs&wPmvcf)jBh+BRm1lT{_Ls-&jI+emm zFgJ(k&7B#xm1mc7m1caZTvnzuX5Pz? z`7DMFId_thrD8ojx^Sr^HM%yu7cp#W?`|b!^edwl;QAQ!rwuX*AP5?wQev!KbSgDe zOD)M529~+XVW`oH>t3SLfkCz6yFsy++jysIKrgI|?t56t^|ag2*L%_IED&Yo$doD; z*rEbPZumvj;*q2HPDi2la)BNe>|89-s&fl6@jw>AORRkSHmgAseT5>qf5yAu5X0|^9o5ayQ|-2G@j z26qZ}OBG76Zx&9oTB?v@_kM7{TB*l&&&~n&^hz071@2Se?k?9WWZ=eQ27d)9hE|J% z`|IvHQc@0X0l3{Yh50ZBiWD!DJUqLA7do!>5`!FS%hR~K{7WoOp_G0l-F&QZd$AFrSr+P5? ze6qtLzHl6$=`Cx1x}gU1u~kdpC2qZj52I!Y$q%zN;(t4!MY1f?(J!AYCGqH-_^oO|{-eW@_c4FOzI6m~{M-=xx%WUq zn9423r3j{>2#pB-$zb>3204ATy0GQ|$@1VtK8Cr$bp$%vw z+KN6$d(Z)N7}cTE=p4F)uA&>L9^FTeVW8|pco2R>dm@K#tvk6Wrwlj*&_B( z_9%8KTf?5np2eQeUcuhL-p)SAKFPkszR7;X;c@&pd`=jrKPQVboFn0k<4okd##zi+ z%h|%&&pFAt%&F(Ja6P!4xP7^a+-z(F^l(XZ8R{Z+sd1U(vdU$<%Q2U$E{|P( zTti(4x)!>Qb)Dk6&~=0Bm##m!-gR?x3vo+u8|Ef+o9wpG?H_Jmxm|X99{W5lcs%s<^9=XQ_LO=~@?7G%#q)&c zuU;-*J-kxAUho?4HQ#HK*D)qhv=OgqP>Z9;^&F4d( zLq0$II{EhW&G41_PV-&qyU+KEAKR~+pU6+*_p;wAzc2l+`t$rl{j>eY`p@?N*#D@1 zeSmL3bU;x+b-R-$Nn899cOji*zx;L ztWJG8<#&3q)5=aqIyH3e(s@v4b>~H$_jSJ6C9q3Mm$6;ub=leFdaz$`Qm`y|UhuBq zU-$w1RKA?QkiVZ_-?dZMtgia5%ex-!`Zy#sWO&HbklK**-CVoHcPs5SuiM^k_1%NJ z=XQUo`$yfs@8QxTzDIeF1w9V-c+fMn=ZKy&dT#Ccb7)X#cIf!fk3xUw<mA>_qW8PK>-w%rG{08 zeH3;%JTN>bd}{dC@LwakM~sSiE8<{8iy%fI7pxMT6Z#6D5l$6u7ycI6CsGo*B=S_0 zM^t9iq^NCCccS}7lhN-*e;eZ$lN&Q5W^YV$Y+S4+c0=s-xbAUd;+DppjrWhwi+?Tt zs|0RBTEe7+&l4Uc#wO|#HzwZhAJ)I3|A+m59uPW!9I$G@m4P7x#RHcQyp+UG8k6*X z(xv3C$>QV{$v>uaOOd9mPWdUdck0;G^{Kz63DPuao6{bM5=9e4yVKd}gVJZEAI<3eUgW?AM(ne~HW2E90FcNRBmaMoK{XR|wJOS0Ex*FO{Y%!Ft54|X41FnICc zA9MQTXmYmavT~oveLMGuAw7mDhin~+hGq|ad+7PR(7bVZJBIOw{`As|E2tc z1%3si3qCBkUzk=nr|{hHUc>dn_ZE2-Jy*1@=)s8e5pzdeDvl_gP<(h~hmo?8+eSH! zDjKzVRKv3w&%X2Q)#qZKoBrIH=R=>be*Vx49bS;X@Wp7a(c;mY#&E}s81vznCh<`5 z3UNb8cFEF`dWlG~KypKxBAq9_P7WmJl0TIWES+2WbJ@VMx67`VCzsDJzbO;R7R&C8 z%^JIG?1PG-6>BOe`3QNf!dWp!@tM+BS)tso>Y}Pv9ar~NPgh?WmpJa7arK(Pn$=oD z`@D9W&L0L-NA$h)ujnsVCRHw}d{|XfwW->tT3LOhrccexnxDpJj{o3A&Wn;4_rBEi zr7166o{&0W`9xx3$;7>rx=ork>FVS`lh;mhol-I7o2i1SbEn>WdBn@xr*)n-dD@j% z2EFppbkFIU>1Sv3pRw#!&a1LlkIsymxoBp~Ea|MTXA5S}pWXDD9^o_QFv=JEPw@G(UR&vIVXS^b0O6 z%vrc?QTIh}E^1m_zWDT#v?aAmJ1w2L^ufE*cTc>R^4^AJotMpC*7&~c{co2KTE1mP z&lU4m@>W)^ytb-n)xi(qKUlZA!|K_qo7X7UTw0sIcK^D#b?ZLt^x>S3SRd&>y1xFo z^>rVof4pr&*oNh`fwi;$f&QWY$1k6Z`Q*&T!5jB(ir=*1(;lBL-R!q{))rz*&6fJD zwbCmm#a6_Hy+=de#__9(qDW1`swYI+ehk)>#yF?+@XGZ z?QZ+KYwktg+uM-WaN)k<{^JL;9=3nD_EG$!gN-8^e|lWiXaEle{Ae1FpbQ&K`bAF?L$!KVfs%{`-x;oCD-r>4-$+I zHX>LYF3-u?#np|l6~eP#HY4;#1czX=I4rIc&zZ}1j{>0&o72@-$W0w4_6r#|C6ed= z*78r%x^)l8-%}D5t(kgUp1#^pR9ZQG{^~6U&Rn}6H)upz)rSu=I6s31V1jlR=^hZEq` zGiL7zNW{u^(v0D;I`T(T5}urbP;(Nf?~yy3j?)Jvqm>Q)f0-~r)ZquYNECHrWyjFa z{(US|Uejye!2@34Z;5PYhRv zx$m!dch<#EpMPayc>gb)8W--kxu)BR505>2Z_=uQ#+Msr5T8|_d2M@rgkC4nceu5A zbL`i57Ttg8#U=OW@9J``G2nF5$vd0I?l{{raS4Uel4~aw2PN)&p_x!|rYpA-0!UeBQC~iF8B5Zt6{N6G_?ZvD3>phzWUYqsa1h+S0I*uOspzs!j zO3&?(d_kf5nZ2pwXDJkrJW|^@C+(1G_$NDOi=bELd)70;c6E&x%9y-*|YwE>e>mO&H*;O&OfI2byVdJE0 zZ$qkfJvct{5QRF8+_r7uXAACmEPV9Mi+7gYKk)9Yk1xD4Lo#mmcUz9#oBeX*2Myyl ztcprptsn9H$??M{ZoXINdE?zj3%}XaT>knmYR(71KSuW$eQ{PvGV9Ui>!wrbtI6>@zFza)j?xqFol9f247)^Y?n8F^ZNY(z7(oEnJQTqIOwPCOEjH-xp{um*-g!%tL84F zzB4?%=}I>=!{JKcrqv5p2&J&LSOTktcvaE7)`(qd@Zt9qAABT21<0_FLbu%^I0hm- zHy8B*hcj{_eCb6yXwZP)0cLw}gR_L_XmXDwdKvw&Kq!PKNC@VF2x*8&+Ku~%H)qJ` z=cYL9Dmd$qYt#3zLh8-j?S9}J!B@MZ5(QE4v2J*%V)))RG`Q~*=Cr-fGU@kzpKWr} z&t4%u9sv_MxD$Bw$ea(Ni#Z=ePs@C;2u24H&NAx;74!j5&}ba!J4Vjyeaz=>QK;|} zD`Q-k1y2;=gvQQ%Fso0%A+XylF}oNhhw<>FI}U<9J5C1%4jcIYX#?hF0};_c;4!zM z!SO55U>dVpshA%S`$Q1DIu|OcMv>+`J)!B5_JxVIK}GJ;TFUDYHuLu2kiU zbvlw>GGUk;~#n&OUO zCBp8vTv+LpsiCd{GNy6}GT{A0G+d0iCyaN0ukZlxN7$yl`sdnVIZk^{Dt0h{-fT3D1ZW!Za>DhJv>rU>M;1%oc+O_yS>Se>IX z{OE}>Vm!!oXJmNA*T~0Vyt0)Nxn7F3(LblcMDJ_lk0LeD#A)D{IZO>EFIx$_SLpW0 zIM8#0^;t3l7LTCWHtNR3?`9~sVrH=$$LBjtuhQYlWU6f@y*>qa;Y*{IYBMAX#jXo6rzFx3=K{SZi#ZBWN@}jrNiJB$o!s;A@6qE0cTL=2Cb1u4?jtw z$j)aXZ~|UNadsv{^MHmQQesFy16e@-_zSki;rZE&%#Cij^Hi{>g4zCrGv&#o%1VMW z<23^MB{Em0lqtk=i%0@#J}?SZ1u`iq5o@ffofANfjnafD-7BrY8j-U?8x5=0hJABh zD=~|3R*03d?EK7pAeyk>RAoBu;eUYB+Lyx$Fnq;Xn>U8s|yR0Ave^t{so1LJ521xTUCil-WBzlIB*A$lX2W&xt(F$=Cx zyl{oQ6XUUNB@ARJm<$6Ay8!5;7YsBZ#M4iw9B~b);m2S-a=j9#%^yxDlmi_=4ZZ1? zk0;=?T&dN7j3XDMhTCGtV!@|w#$TL#U!QF^DqOBR>9iRxV*y2iYN-R(ZwCUq_qt4S+!Im+t0aXL) z*cy1S{kjS;C*iKeamdXGd(yf83nP3gZyL2lH2P@>$3i}FT~CA4!(i8lwrg0I#|Rsq z$wb;9+#MwN_}vI|U>j)#1fWqgAdH{;bD#uOu+Cp$gD&rHfbI?7wGXY(-JO9UK`4bm z$M9SWqu3KpFC)6RP9YRRqYLW<*lk7^k4xdXlHvH>=yI#XI!U<|y4ZfXV7+3nUA&vZ zfV|m$={?7P#Bh)F) zu!WqWF6OlW$(uu69D~rVW{L$j=!;WYDB|LnCW>_%lLY_v1By6S+k()X`xM&Mf(XH` zhZK>5n&CCXM-*!r4F8t#5gK#xF~zZ^d>a&9RC_mr_vRGDhZ!zj z>ck1-!JwQ2R~{skzCT1Q6iy%o*Cq<5tr^A!kKv?H1AV;<+X#^m7~sYHW&C2Sxq{wrn&iUis(*r<9O8E)C8zDHL;N&oXDvO-mrXP=k|$ZHoHU9~>Tm!aUvQ%@lXLZm2N8gP3x^fgUYP7k13*|T?@ET+9L`j(JlqJ%CO62Aw})U9JHUJ z-o|y5&HCneVGC?zC^~rv=9r+(CCB+O;=mO!Y?WzS5ZY|zELzyVga&L4#dTDDJylnX z-N>W1zC0MA;PU!f4XWQ0{gM7wM2DA*2& za72)d;N)70szbpz8FV6nykJZuodr;4%mSTWfq+goxSvu`zft!7{#Qfej2Pz2u#QMS zBg8Yf%v>#g3z zs~K?(O&8DDc(v4V4UHFvZoZ&%pxZ7sZoM8+Y}|0M5j0)k#;q21V?J)OIN%2r(;>i@ z7lgNJv%G9uEl87fyJbwIx#enx_rvO%DWa~p8FzKT&}cnIZS@;}yY8{AOyKDU4Ax<= z*NpEl)N4kM5F3y5nxW@s`*8EP zuLZn1o5p^aa$?4R&4$^9MQ?0MupyCujTwbu!samazwkKFWH*+!2IV-58H7gCyg}qlYAL0L&yyzfCf;n^l~Q89YtG1>c%j2a zhP}>=BuvI1dC16^7h%R%ReixfXz_L?bArRh-R&%i2e8$jIAo+X0qd4K&)T z>e}fB)*9F<2~*-MJjdApjB+%6m7j$UBj29RF8s{M6P5464EEDXXq-8`PXTF?ERQXR zT9#8#%GE5Q0mzb~j%FZ3JAr4YVRGP`YRgZ2C9MoN?;~i$&z9htELw?l7G+y>|!A?Y04$T z(H+e60+DG2>S_3Bf#YccAT`~%Wr0t|mfxGaTuPmHy|37EDZKpc z*pW|**l9;{AbI%)(}s7jZ+T)lfqAigUoT?H?>M1qw{uGcvc6{MZc`$rebCSjGsOe9 z8~SDJ(AE1ZLpK%+v^iwpfxM4Rts4ytcx-auS_5xP-B1sAuYoI*15X*aSPIOQ2DVHM z)ENBxwyL9^VD!JytCJj8^>vBApAxQN4TIG28R~%vb}&XW8~8Z@DX!u|2C3&X(!dBW zlOw}@+yQ_%%csoun1{!HK-y-$t!CrLpwZtM_Z#aZHjQpJZlm@22eHY=qUGV+35nmv z-^VDiMb$?NERS#Hqc$WxJ2%nAFrAE2SR-AG(#gpG`8`rKPz_WA)j&1S%xad=K@&YZ z$1m7JU@rR+=X;KrJd53BT(2uU&Q3RayJ^IA9`tjPFsFFXd^r!P2Ruqr!V{d!2VB55 zrb_cC&Z3a_xPmcKh_9$R;x(ouZ%#I6VS^6)s>dPz(a@8gnHRX+WZOMT5N|S)bCXMB zcWF19j_qWiI}DFf=xgJm66@iweWHN#w;qcmjw(*58q4u(8}DIf19_+9hNWWY59RxzwBlw zEYCK{51gkCnzI}^7f%hOeb{oXFZ{rf@e#|h+idbf*VldA9!E{q>&c}aJkR$%lf3WQ zQY Date: Thu, 7 Feb 2019 14:33:16 +0200 Subject: [PATCH 2/4] Rebuild atom.xml and data-min.js --- atom.xml | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ data-min.js | 2 +- 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/atom.xml b/atom.xml index ba6792585..181125494 100644 --- a/atom.xml +++ b/atom.xml @@ -5824,5 +5824,101 @@ Automatically switch css html background color. + + Wirup + + urn:uuid:fa4fca70-2ad3-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Lightweight nano framework for Single Page Applications (SPAs) on the web. + + + + WirupExpress + + urn:uuid:fa50dbe0-2ad3-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + The Ultra Lightweight version of Wirup. + + + + ShadowQuery + + urn:uuid:fa8f1d60-2ad3-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Micro-library for writing vanilla web components + + + + Holen + + urn:uuid:fc03bc00-2ad3-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Simple and standalone AJAX library for modern browsers. Inspired by Angular's $http method. + + + + vanilla-picker-mini + + urn:uuid:022540e0-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + A simple, easy to use color picker with alpha selection. + + + + almy.js + + urn:uuid:048b4460-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Fast & simple centralized state management library + + + + Browser Storage JS + + urn:uuid:1164e8d0-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + JavaScript Library for Cross Browser Persistence using WebStorage (LocalStorage, SessionStorage, WebSQL and IndexedDB) for all browsers. + + + + Excellent.js + + urn:uuid:12f8a830-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + DOM-Manipulation Framework + + + + Spck-Embed + + urn:uuid:130b6ce0-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Small embeddable online code editor for demos. + + + + gradstop + + urn:uuid:130c0920-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + JavaScript micro library to generate gradient color stops + + + + easyrouter + + urn:uuid:130e2c00-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + Tiny, fast, easy, yet powerful hash router in JavaScript + + + + Beedle + + urn:uuid:135bd6d0-2ad4-11e9-8dd8-d7f984047675 + 2019-02-07'T'12:29:12+00:00 + A tiny library inspired by Redux & Vuex to help you manage state in your JavaScript apps + + \ No newline at end of file diff --git a/data-min.js b/data-min.js index 89f53eb5b..bc822c0da 100644 --- a/data-min.js +++ b/data-min.js @@ -1 +1 @@ -var MicroJS=[{"name":"sprites.js","tags":["sprite","canvas","sprites.js","requestAnimationFrame","raf","front-end","frontend","javascript"],"description":"Sprites.js is simple canvas sprites animation library. No setTimeout() or setInterval(). Just rAF.","url":"https://github.com/wisniewski94/sprites.js","size":"0.7 kB","ghwatchers":"17","ghforks":"4","xmlEncodedName":"sprites.js"},{"name":"VP PubSub","tags":["pubsub","publish","subscribe","message","pub","sub","emitter","event"],"description":"VP PubSub is a publish/subscribe library that supports message filtering","url":"https://github.com/schubergphilis/vp-pubsub","size":"1.1 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"VP PubSub"},{"name":"tinyModal","tags":["modal","javascript","vanilla","simple"],"description":"Clean, Fast, Modular and customizable Modal Window controller","url":"http://juanbrujo.github.io/tinyModal/","size":"0.8 kB","ghwatchers":"33","ghforks":"3","xmlEncodedName":"tinyModal"},{"name":"NodeList.js","tags":["DOM","NodeList"],"description":"Use the Native DOM APIs as easily as jQuery","url":"https://github.com/eorroe/NodeList.js","size":"1.2 kB","ghwatchers":"495","ghforks":"43","xmlEncodedName":"NodeList.js"},{"name":"Dragula","tags":["Drag and Drop","simple","Library"],"description":"Drag and drop so simple it hurts","url":"https://bevacqua.github.io/dragula/","size":"2.6 kB","ghwatchers":"17,762","ghforks":"1,397","xmlEncodedName":"Dragula"},{"name":"fuzzysearch","tags":["Lightweight","Tiny","fast","fuzzy","fuzzy-search","search"],"description":"Tiny and blazing-fast fuzzy search in JavaScript","url":"https://github.com/bevacqua/fuzzysearch","size":"0.2 kB","ghwatchers":"2,138","ghforks":"70","xmlEncodedName":"fuzzysearch"},{"name":"Tiny Browser Framework","tags":["framework","web","websocket","browser"],"description":"Minimal Client JS Framework","url":"https://github.com/thedumbterminal/TinyBrowserFramework","size":"0.9 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"Tiny Browser Framework"},{"name":"syrupjs","tags":["pubsub","component-interaction","event","jquery"],"description":"A tiny pub/sub jQuery micro-framework for distant component interaction","url":"https://github.com/ahmed-musallam/syrupjs","size":"0.3 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"syrupjs"},{"name":"blobcounter.js","tags":["blob","image","canvas","processing","2D","blobcounter"],"description":"blobcounter.js helps you find blobs and shapes in an image","url":"https://github.com/satrobit/blobcounter.js","size":"0.5 kB","ghwatchers":"1","ghforks":"1","xmlEncodedName":"blobcounter.js"},{"name":"uniloc","tags":["router","routing","query","parser","parsing","parameters","uri"],"description":"Uniloc is a utility to match URIs to named routes, and to generate URIs given a route name and options","url":"https://github.com/unicorn-standard/uniloc","size":"1.3 kB","ghwatchers":"92","ghforks":"16","xmlEncodedName":"uniloc"},{"name":"body-scroll-freezer.js","tags":["scroll","freeze","modal","scrolling","lightbox","performance"],"description":"Dependency-free JS module to freeze body scroll when opening modal box","url":"https://github.com/ramonvictor/body-scroll-freezer","size":"0.5 kB","ghwatchers":"15","ghforks":"1","xmlEncodedName":"body-scroll-freezer.js"},{"name":"ViaJS","tags":["content","load","route","dynamic","browser","page","html"],"description":"Via is a small library that allows you to load content on to a page dynamically","url":"https://github.com/abdi0987/ViaJS","size":"0.7 kB","ghwatchers":"46","ghforks":"15","xmlEncodedName":"ViaJS"},{"name":"miq","tags":["jquery","dom","ajax"],"description":"Lightweight modern jQuery-like DOM library","url":"http://www.bitstorm.org/javascript/miq/","ghwatchers":"9","ghforks":"2","size":"1.3 kB","xmlEncodedName":"miq"},{"name":"RouterX","tags":["router","frp","rxjs","cycle","rx"],"description":"A stupid simple functional reactive router built for use with Rx.js apps","url":"https://github.com/bcoop713/routerx","ghwatchers":"16","ghforks":"0","size":"0.4 kB","xmlEncodedName":"RouterX"},{"name":"scriber","tags":["html","DOM","builder","scriber","writer"],"description":"A simple fluent library to write html DOM elements","url":"https://jccazeaux.github.io/scriber","size":"0.9 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"scriber"},{"name":"xflagable","tags":["flag","event","promise"],"description":"Create flag promises","url":"https://github.com/javimosch/xflagable/","ghwatchers":"3","ghforks":"0","size":"0.5 kB","xmlEncodedName":"xflagable"},{"name":"data-obs","tags":["observer","events","lightweight"],"description":"Simple lightweigh javascript data observer","url":"https://github.com/lmettini/data-obs","size":"0.3 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"data-obs"},{"name":"xtypejs","tags":["xtype","type","typeof","data-type","validation"],"description":"Elegant, highly efficient data validation for JavaScript","url":"http://xtype.js.org","size":"2.9 kB","ghwatchers":"311","ghforks":"9","xmlEncodedName":"xtypejs"},{"name":"diapason","tags":["dependency","injection","di","asynchronous","promise"],"description":"Asynchronous dependency injections that works on any promise framework","url":"https://jccazeaux.github.io/diapason","size":"1.4 kB","ghwatchers":"0","ghforks":"1","xmlEncodedName":"diapason"},{"name":"window.module","tags":["di","dependency","injection","container","module","require"],"description":"Synchronous module system for browsers.","url":"https://github.com/ziolko/window.module","size":"0.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"window.module"},{"name":"Location Init","tags":["router","callback","init"],"description":"Simple route callbacks","url":"https://github.com/tbleckert/location-init","size":"0.4 kB","ghwatchers":"10","ghforks":"3","xmlEncodedName":"Location Init"},{"name":"indent.js","tags":["indent","autoindent","indentation","jsbeautify"],"description":"Pure indentation of JS, CSS, HTML code and nothing extra.","url":"https://github.com/zebzhao/indent.js","size":"2.7 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"indent.js"},{"name":"Handorgel","tags":["handorgel","accordion","tabs","toggle","collapse"],"description":"Accessible W3C conform accordion written in ES6.","url":"https://github.com/oncode/handorgel","size":"3.2 kB","ghwatchers":"157","ghforks":"14","xmlEncodedName":"Handorgel"},{"name":"Freezer.js","tags":["immutable","react","tree","cursors","store","events"],"description":"An immutable tree data structure that is always updated from the root, making easier to think in a reactive way.","url":"https://github.com/arqex/freezer","ghwatchers":"1,189","ghforks":"42","size":"3.5 kB","xmlEncodedName":"Freezer.js"},{"name":"FromNow","tags":["date","time","parse","format","from now","fromNow","readable time","time difference"],"description":"An extremely lightweight javascript utility for calculating readable time differences from now vs past or future dates.","url":"https://github.com/lukeed/fromNow","ghwatchers":"17","ghforks":"5","size":"0.4 kB","xmlEncodedName":"FromNow"},{"name":"Trkl","tags":["observable","frp","functional reactive","functional","state","knockout","rx"],"description":"Reactive microlibrary with observables and Knockout-style computeds in 430 bytes (minified and gzipped)","url":"https://github.com/jbreckmckye/trkl","ghwatchers":"50","ghforks":"1","size":"0.5 kB","xmlEncodedName":"Trkl"},{"name":"Canary","tags":["javascript","test","tests","testing","unit test","unit tests","unit testing","automated test","automated tests","automated testing"],"description":"Write and run unit tests.","url":"https://github.com/Mapita/Canary","package":"canary-test","documentation":"http://canary.readthedocs.io/en/stable/","size":"4.6 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"Canary"},{"name":"FrontExpress","tags":["frontexpress","router","routing","express","spa","framework","front-end","tiny","parameters","querystring","named","path","uri"],"description":"An Express.js-Style router for the front-end","url":"https://www.frontexpressjs.com","size":"3.5 kB","ghwatchers":"264","ghforks":"15","xmlEncodedName":"FrontExpress"},{"name":"Tinyscrollbar","tags":["scrollbar","ui","interface","scroll"],"description":"Create pretty scrollbars","url":"https://github.com/wieringen/tinyscrollbar","size":"1.4 kB","ghwatchers":"392","ghforks":"205","xmlEncodedName":"Tinyscrollbar"},{"name":"ba.js","tags":["animation","animations","css","css3"],"description":"Create and manage CSS3 animations from JavaScript.","url":"http://bajs.io","size":"0.8 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"ba.js"},{"name":"Trak.js","tags":["trak","track","events","analytics","google","tag","tagging"],"description":"Universal analytics event tracking API wrapper","url":"https://github.com/mrmartineau/trak.js","size":"0.8 kB","ghwatchers":"125","ghforks":"14","xmlEncodedName":"Trak.js"},{"name":"justlazy.js","tags":["lazy","load","lazyload","responsive","image","images","loader","srcset","picture","spinner"],"description":"Micro javascript library to lazy load responsive images (also with srcset attribute).","url":"http://fhopeman.github.io/justlazy","size":"0.7 kB","ghwatchers":"92","ghforks":"17","xmlEncodedName":"justlazy.js"},{"name":"ease.js","tags":["ease","animation"],"description":"ease component for animation, include 30 ease functions.","url":"https://github.com/lloydzhou/ease","size":"0.6 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"ease.js"},{"name":"Nano ID","tags":["id","uuid","generator"],"description":"Secure URL-friendly unique string ID generator","url":"https://github.com/ai/nanoid","size":"0.2 kB","ghwatchers":"4,023","ghforks":"143","xmlEncodedName":"Nano ID"},{"name":"Nano Events","tags":["events","EventEmitter","pub/sub","emit"],"description":"Simple and tiny event emitter library","url":"https://github.com/ai/nanoevents","size":"0.3 kB","ghwatchers":"299","ghforks":"11","xmlEncodedName":"Nano Events"},{"name":"ClassManager","tags":["language","class","inheritance","multiple","extend"],"description":"One of the fastest and most convenient class systems in the world","url":"https://github.com/kogarashisan/ClassManager","size":"4.5 kB","ghwatchers":"37","ghforks":"3","xmlEncodedName":"ClassManager"},{"name":"FloatSidebar.js","tags":["sticky","float","sidebar"],"description":"Make your sidebar floating","url":"https://github.com/vursen/FloatSidebar.js","size":"1.7 kB","ghwatchers":"36","ghforks":"6","xmlEncodedName":"FloatSidebar.js"},{"name":"geojson2svg","tags":["maps","geojson","svg"],"description":"Converts geojson to svg string given svg viewport size and maps extent. Used for data visulizaton on maps.","url":"https://github.com/gagan-bansal/geojson2svg","size":"2 kB","ghwatchers":"85","ghforks":"23","xmlEncodedName":"geojson2svg"},{"name":"Rat.js","tags":["canvas","graphics","oop","html5","games","image","draw"],"description":"Use objects on canvas","url":"https://github.com/keyten/Rat.js","size":"0.7 kB","ghwatchers":"20","ghforks":"6","xmlEncodedName":"Rat.js"},{"name":"Timesheet.js","tags":["timesheet","graph","charts","flow","gantt","draw"],"description":"Visualize your data with Timesheet.js","url":"https://github.com/sbstjn/timesheet.js","size":"1.1 kB","ghwatchers":"6,479","ghforks":"522","xmlEncodedName":"Timesheet.js"},{"name":"dual-emitter","tags":["browser","chrome","chromium","cross","cross-browser","custom","dom","dual","emitter","event","events","explorer","firefox","ie","ie8","internet","invoke","bind","mini","mozilla","node","nodejs","spa","databinding","binding","two way","data binding"],"description":"Cross-browser (and IE8) + node.js event emitter in 35 lines. Invoke custom or DOM event. Useful for two-way data-binding!!","url":"https://github.com/charlike/dual-emitter","size":"3.7 kB","ghwatchers":"23","ghforks":"2","xmlEncodedName":"dual-emitter"},{"name":"Muject","tags":["dependency","injection","inversion","control","ioc","di","require"],"description":"10-SLOC no-bullshit dependency injection micro-library","url":"https://github.com/srijs/muject","size":"0.1 kB","ghwatchers":"11","ghforks":"1","xmlEncodedName":"Muject"},{"name":"Cquence.js","tags":["animation","banner","CSS animations"],"description":"A Super Tiny JavaScript Animation Library","url":"https://github.com/RamonGebben/Cquence","size":"0.7 kB","ghwatchers":"317","ghforks":"21","xmlEncodedName":"Cquence.js"},{"name":"fetchival","tags":["fetch","promise","json","xhr","ajax","rest"],"description":"Easy fetch requests","url":"https://github.com/typicode/fetchival","size":"0.6 kB","ghwatchers":"461","ghforks":"26","xmlEncodedName":"fetchival"},{"name":"VanillaMasker","tags":["mask input","mask","vanilla"],"description":"VanillaMasker is a pure javascript mask input","url":"http://vanilla-masker.github.io/vanilla-masker/","size":"1.4 kB","ghwatchers":"936","ghforks":"132","xmlEncodedName":"VanillaMasker"},{"name":"once.js","tags":["called","once","function","one","single","coffeescript","javascript","amd","node","web"],"description":"Enforce that a CoffeeScript or JavaScript function can only be executed once.","url":"https://github.com/daniellmb/once.js","size":"0.1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"once.js"},{"name":"micro-events","tags":["event","performance","event emitter","listener","handler","eventing","amd","node","web"],"description":"A minimal event emitter implementation","url":"https://github.com/alexanderGugel/micro-events","size":"0.6 kB","ghwatchers":"20","ghforks":"2","xmlEncodedName":"micro-events"},{"name":"strg.js","tags":["localStorage","sessionStorage","cookie","cookies"],"description":"Simple and clear localStorage, sessionStorage and cookie operating library with the single API","url":"https://github.com/fend25/strg.js","size":"0.7 kB","ghwatchers":"33","ghforks":"4","xmlEncodedName":"strg.js"},{"name":"imago.js","tags":["image","image manipulation","image resizing","image trimming"],"description":"It's a wonderful image library! With the purpose to facilitate the manipulation of images, imago.js enables you to perform trimming and resizing","url":"https://github.com/evandroeisinger/imago.js","size":"2.1 kB","ghwatchers":"34","ghforks":"3","xmlEncodedName":"imago.js"},{"name":"VidBG","tags":["video","background","embed"],"description":"micro-library for embedding video backgrounds into web pages","url":"https://github.com/daniellmb/VidBG","size":"0.3 kB","ghwatchers":"17","ghforks":"1","xmlEncodedName":"VidBG"},{"name":"WorkerB","tags":["web","worker","webworker","async","threads","inline"],"description":"Extremely simple inline Web Worker for easy multithreading in JS","url":"https://github.com/lukeschaefer/WorkerB","size":"0.6 kB","ghwatchers":"5","ghforks":"1","xmlEncodedName":"WorkerB"},{"name":"aop.js","tags":["aspect","oriented","programming","aop","functional"],"description":"Aspect Oriented Programming Micro Library.","url":"https://github.com/daniellmb/aop.js","size":"0.2 kB","ghwatchers":"12","ghforks":"0","xmlEncodedName":"aop.js"},{"name":"di.js","tags":["dependency","injection","di"],"description":"Dependency Injection Micro Library.","url":"https://github.com/daniellmb/di.js","size":"0.3 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"di.js"},{"name":"ab.js","tags":["ab test","a/b test","split test","testing"],"description":"A/B/n Testing Micro Library.","url":"https://github.com/daniellmb/ab.js","size":"0.2 kB","ghwatchers":"37","ghforks":"5","xmlEncodedName":"ab.js"},{"name":"vanillatree","tags":["jstree","jquery","interactive trees","vanilla","pure","native"],"description":"Tiny replacement of jQuery jstree (\"interactive trees\") with no dependencies.","url":"https://github.com/finom/vanillatree","size":"1.7 kB","ghwatchers":"50","ghforks":"8","xmlEncodedName":"vanillatree"},{"name":"devicedetector.js","tags":["device detector","client-side","ismobile","check mobile"],"description":"Tiny script detecting if you are on a desktop, mobile or tablet device.","url":"https://github.com/PoeHaH/devicedetector","size":"0.3 kB","ghwatchers":"27","ghforks":"12","xmlEncodedName":"devicedetector.js"},{"name":"MicroLib-Tabs","tags":["dom","tabs","tabbed content"],"description":"A small library for easily creating tabbed content. Small markup and a single function.","url":"https://github.com/VizuaaLOG/microlib-tabs","size":"0.7 kB","ghwatchers":"8","ghforks":"0","xmlEncodedName":"MicroLib-Tabs"},{"name":"Chaintastic","tags":["data","functional","chain"],"description":"Create chainable sync/async APIs easily","url":"https://github.com/ezakto/chaintastic","size":"0.6 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"Chaintastic"},{"name":"Dom.js","tags":["dom","dom manipulation","dom traversal","dom events","crossbrowser","event","traversal"," manipulation"],"description":"DOM.js is a lightweight, fast and cross browser library for DOM traversal, manipulation and event handling.","url":"https://github.com/dkraczkowski/dom.js","size":"5.2 kB","ghwatchers":"113","ghforks":"22","xmlEncodedName":"Dom.js"},{"name":"Collection.js","tags":["localStorage","database","db","simple","crossbrowser","query","collection","entity"],"description":"Collection.js is small but yet powerfull local database build on top of the localstorage.","url":"https://github.com/dkraczkowski/collection.js","size":"1.5 kB","ghwatchers":"33","ghforks":"3","xmlEncodedName":"Collection.js"},{"name":"Infect.js","tags":["dependency injection","DI","dependency","injection","dependency-free"],"description":"Infectiously simple dependency injection for any JavaScript project","url":"https://github.com/amwmedia/infect.js","size":"0.8 kB","ghwatchers":"144","ghforks":"8","xmlEncodedName":"Infect.js"},{"name":"Pegasus","tags":["AJAX","JSON","GET","xhr","request","promise","parallel","performance","load","preload"],"description":"Load JSON data while still loading other scripts (xhr + promise).","url":"https://github.com/typicode/pegasus","size":"0.2 kB","ghwatchers":"687","ghforks":"58","xmlEncodedName":"Pegasus"},{"name":"FinnishBankUtils","tags":["Finnish","IBAN","Validation","Viitenumero","Reference number"],"description":"Library for validating and creating Finnish IBAN bank account numbers and reference numbers.","url":"https://github.com/vkomulai/finnish-bank-utils","size":"1.9 kB","ghwatchers":"11","ghforks":"5","xmlEncodedName":"FinnishBankUtils"},{"name":"FinnishBusinessIds","tags":["Finnish","Y-tunnus","alv-tunnus","vat number","Business ID","Validation"],"description":"Library for validating and creating Finnish business IDs (Y-tunnus, alv-numero).","url":"https://github.com/vkomulai/finnish-business-ids","size":"1 kB","ghwatchers":"2","ghforks":"2","xmlEncodedName":"FinnishBusinessIds"},{"name":"PerfNow.js","tags":["performance","benchmark","polyfill","high","resolution","timer","now"],"description":"A high resolution performance benchmarking polyfill","url":"https://github.com/daniellmb/perfnow.js","size":"0.1 kB","ghwatchers":"38","ghforks":"8","xmlEncodedName":"PerfNow.js"},{"name":"SaVaGe.js","tags":["svg"],"description":"A small SVG library with a chaining API","url":"https://github.com/strathausen/savage","size":"0.4 kB","ghwatchers":"23","ghforks":"4","xmlEncodedName":"SaVaGe.js"},{"name":"style.js","tags":["style","CSS GUI"],"description":"A layman's tool to style HTML Elements and share CSS values","url":"https://github.com/dhilipsiva/style.js","size":"0.9 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"style.js"},{"name":"hyphen","tags":["text","hyphenation","hyphen","liang"],"description":"Franklin M. Liang's hyphenation algorithm, implemented in Javascript","url":"https://github.com/ytiurin/hyphen","size":"1 kB","ghwatchers":"50","ghforks":"6","xmlEncodedName":"hyphen"},{"name":"Smart Select","tags":["select","multi-select","multi select","standalone","library","micro","smart"],"description":"Smart select is replacing and beautifying standard selects while keeping them async.","url":"https://github.com/davidecantoni/smart-select","size":"2.1 kB","ghwatchers":"4","ghforks":"1","xmlEncodedName":"Smart Select"},{"name":"Sortable","tags":["sortable","dnd","reorder","drag","touch"],"description":"Sortable is a minimalist JavaScript library for modern browsers and touch devices. No jQuery.","url":"http://rubaxa.github.com/Sortable/","size":"5.9 kB","ghwatchers":"13,590","ghforks":"2,050","xmlEncodedName":"Sortable"},{"name":"CRC32","tags":["crc","crc-32","checksum","check","verify","error","hash"],"description":"Blazing fast CRC-32 checksum algorithm for binary and Unicode data.","url":"https://github.com/SheetJS/js-crc32","size":"0.6 kB","ghwatchers":"195","ghforks":"13","xmlEncodedName":"CRC32"},{"name":"AsyncIterator","tags":["async","iterate","callback"],"description":"A very lightweight javascript library for async iteration. Callback-chain-free. Zero dependency.","url":"https://github.com/aravindbaskaran/simple-async","size":"0.3 kB","ghwatchers":"9","ghforks":"5","xmlEncodedName":"AsyncIterator"},{"name":"cryptofoo","tags":["hash","hashing","md5","whirlpool"],"description":"A good compromise between speed and validity to hash strings","url":"https://github.com/SimonWaldherr/cryptofoo","size":"4.8 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"cryptofoo"},{"name":"guard","tags":["access","control","acl","guard","auth","authorized","unauthorized"],"description":"Utility to split opportunities by the account level (free\\pro\\enterprise\\etc.) for frontend and node","url":"https://github.com/iofjuupasli/guard","size":"0.7 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"guard"},{"name":"micromarkdown.js","tags":["markdown","md","html","converter"],"description":"convert markdown to HTML in under 5kb","url":"https://github.com/SimonWaldherr/micromarkdown.js","size":"4.4 kB","ghwatchers":"162","ghforks":"39","xmlEncodedName":"micromarkdown.js"},{"name":"mailcheck","tags":["library","email","spelling","autosuggest","autocorrect","typo"],"description":"Reduce user-misspelled email addresses in your forms.","url":"https://github.com/mailcheck/mailcheck","size":"1.6 kB","ghwatchers":"7,280","ghforks":"436","xmlEncodedName":"mailcheck"},{"name":"P","tags":["promise","callback","library","functional"],"description":"It's an agnostic, cross-browser and very lightweight library to help you to work with Promise in JavaScript.","url":"https://github.com/evandrolg/p","size":"0.2 kB","ghwatchers":"20","ghforks":"4","xmlEncodedName":"P"},{"name":"MoaJS","tags":["class","classes","extend","inheritance","oop","mixins"],"description":"ExtJs syntax for declaration object inheritance, mixins, static methods / properties / mixins, singleton declaration out of the box and less then 2kB minified JavaScript code.","url":"https://github.com/Pencroff/MoaJs","ghwatchers":"9","ghforks":"1","size":"1.5 kB","xmlEncodedName":"MoaJS"},{"name":"stateman.js","tags":["router","state","spa"],"description":"A tiny foundation that providing nested state-based routing for complex web application.decodeURI","url":"https://github.com/leeluolee/stateman","size":"4.3 kB","ghwatchers":"368","ghforks":"39","xmlEncodedName":"stateman.js"},{"name":"bLazyJS","tags":["lazy","lazyload","image","images","retina","responsive","loader"],"description":"A lightweight script for lazy loading and multi-serving (retina and responsive) images","url":"http://dinbror.dk/blazy/","size":"1.9 kB","ghwatchers":"2,291","ghforks":"287","xmlEncodedName":"bLazyJS"},{"name":"hu.js","tags":["svg","vector","graphics","games"],"description":"A really light library for creation, manipulation and animation of SVG.","url":"https://github.com/Canop/hu.js","size":"1.3 kB","ghwatchers":"45","ghforks":"5","xmlEncodedName":"hu.js"},{"name":"SimpleBinder","tags":["binding","data","input","change","event","callback","library","functional"],"description":"simplebinder is a zero dependency one-way databinder for javascript.","url":"https://github.com/james2doyle/simplebinder","size":"0.6 kB","ghwatchers":"48","ghforks":"7","xmlEncodedName":"SimpleBinder"},{"name":"ArrowJS","tags":["notification","cross-browser","namespace"],"description":"Arrow is a small library for displaying a arrow pointing to the browser download location","url":"https://github.com/pbojinov/arrow-js","size":"1.3 kB","ghwatchers":"36","ghforks":"7","xmlEncodedName":"ArrowJS"},{"name":"fpscounter","tags":["performance","canvas"],"description":"Creates a very simple fps counter in a browser. Zero config by default, options available.","url":"https://github.com/pete-otaqui/fpscounter","size":"1 kB","ghwatchers":"19","ghforks":"1","xmlEncodedName":"fpscounter"},{"name":"minivents","tags":["events"],"description":"A mini event library for Javascript applications","url":"https://github.com/allouis/minivents","size":"0.2 kB","ghwatchers":"392","ghforks":"37","xmlEncodedName":"minivents"},{"name":"audioJS","tags":["audio","html5"],"description":"AudioJS is a agnostic and cross-browser lib to work easily with the AudioContext API of HTML5.","url":"https://github.com/evandrolg/audiojs","size":"0.9 kB","ghwatchers":"43","ghforks":"13","xmlEncodedName":"audioJS"},{"name":"CornerJS","tags":["directives","WeakMap","MutationObserver"],"description":"IE9+ Angular-style directives for binding events to adding, removing and modifying classes, attributes and tags of DOM elements. Includes MutationObserver and WeakMap IE9+ polyfills","url":"https://github.com/Jabher/cornerjs","size":"1.3 kB","ghwatchers":"68","ghforks":"7","xmlEncodedName":"CornerJS"},{"name":"http.js","tags":["http","ajax","rest"],"description":"http.js is an object oriented javascript library for making http requests and ajax calls.","url":"https://github.com/organic-scholar/http.js","size":"2 kB","ghwatchers":"61","ghforks":"14","xmlEncodedName":"http.js"},{"name":"Automator.js","tags":["Automation","Unit testing","Sequence","User interaction"],"description":"A minimal JavaScript library for automating practically anything in Javascript.","url":"https://github.com/brophdawg11/Automator.js","ghwatchers":"24","ghforks":"3","size":"1.7 kB","xmlEncodedName":"Automator.js"},{"name":"Hover","tags":["Hoverboard","Flux","React","store","model","data","listener"],"description":"A very lightweight (anti-gravity?) data model and Flux store with actions and a state change listener.","url":"https://github.com/jesseskinner/hover","ghwatchers":"90","ghforks":"4","size":"0.6 kB","xmlEncodedName":"Hover"},{"name":"j2c","tags":["CSS","CSS-in-JS","compiler","preprocessor","SASS","LESS","Stylus","JSON"],"description":"CSS-in-JS libray. Small, yet robust and featureful. Local classes, nested selectors, all @rules (nestable), full style sheets or inline styles...","url":"http://j2c.py.gy","size":"1.7 kB","ghwatchers":"155","ghforks":"7","xmlEncodedName":"j2c"},{"name":"JsChannels","tags":["Channels","core.async","async","Promise","Deferred","Deferreds","Promises"],"description":"A minimal JavaScript Channels library, inspired by Clojure's core.async.","url":"https://github.com/brophdawg11/JsChannels","size":"0.5 kB","ghwatchers":"51","ghforks":"5","xmlEncodedName":"JsChannels"},{"name":"translate.js","tags":["translation","translate","i18n","internationalization","languages","localization"],"description":"A simple function to translate strings. With support for multiple plural forms and replacements/placeholders","url":"https://github.com/musterknabe/translate.js","size":"0.6 kB","ghwatchers":"31","ghforks":"16","xmlEncodedName":"translate.js"},{"name":"bullet","tags":["bullet","pubsub","pub-sub","events","communication","oop"],"description":"Bullet is an ultra lightweight and simple to use pub-sub library, with AMD/module support and an intuitive API.","url":"https://github.com/munkychop/bullet","size":"1.7 kB","ghwatchers":"43","ghforks":"6","xmlEncodedName":"bullet"},{"name":"selecting","tags":["selecting","selection","string","text","api"],"description":"A library that allows you to access the text selected by the user","url":"https://github.com/EvandroLG/selecting","size":"0.8 kB","ghwatchers":"66","ghforks":"7","xmlEncodedName":"selecting"},{"name":"Avtomat","tags":["automaton","finite-state","machine","deterministic","non-deterministic","input","event"],"description":"Non-deterministic finite state machine (with empty moves) implementation","url":"https://github.com/Temoto-kun/avtomat","size":"0.9 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"Avtomat"},{"name":"store","tags":["localStorage","sessionStorage","JSON","namespace","API","extensible"],"description":"A better API for using localStorage and sessionStorage.","url":"https://github.com/nbubna/store","size":"1.4 kB","ghwatchers":"1,123","ghforks":"75","xmlEncodedName":"store"},{"name":"EQCSS","tags":["element","queries","container","query","css","reprocessor","rwd","scoped","styles","parent","selector"],"description":"EQCSS is a CSS reprocessor that introduces Scoped Styles, Element Queries, Container Queries, and new selectors like $parent and $prev and more","url":"https://github.com/eqcss/eqcss/","size":"3 kB","ghwatchers":"1,367","ghforks":"60","xmlEncodedName":"EQCSS"},{"name":"Oboe.js","tags":["ajax","streaming","download","json","parser","sax","jsonpath","http"],"description":"Library for progressive parsing of ajax responses. Provides notification of objects found without waiting for the request to complete.","url":"http://oboejs.com","ghwatchers":"4,368","ghforks":"198","size":"5.5 kB","xmlEncodedName":"Oboe.js"},{"name":"webSqlSync.js","tags":["websql","sqlite","synchronization","sync","sql","web-sql","database","server"],"description":"Library to synchronize automatically a local WebSql database (SQLite on the browser) with your server","url":"https://github.com/orbitaloop/WebSqlSync","size":"3.2 kB","ghwatchers":"483","ghforks":"115","xmlEncodedName":"webSqlSync.js"},{"name":"attach.js","tags":["dom","instantiation","attach","javascript"],"description":"A DOM instantiation API designed to tidy up and encapsulate attaching JavaScript to the page.","url":"http://nicbell.github.io/attach.js/","size":"0.4 kB","ghwatchers":"14","ghforks":"1","xmlEncodedName":"attach.js"},{"name":"loglevel","tags":["log","logging","console"],"description":"Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods","url":"https://github.com/pimterry/loglevel","size":"1.1 kB","ghwatchers":"1,100","ghforks":"107","xmlEncodedName":"loglevel"},{"name":"form-to-obj","tags":["form","serialization"],"description":"A small, zero-dependency form-to-object serialization utility","url":"https://github.com/chrisdavies/form-to-obj","size":"0.5 kB","ghwatchers":"44","ghforks":"8","xmlEncodedName":"form-to-obj"},{"name":"goo.js","tags":["HTML5","canvas"],"description":"Microlibrary that makes it quick and easy to draw using the HTML5 Canvas API/","url":"http://www.storminthecastle.com/projects/goo.js/","size":"1 kB","ghwatchers":"84","ghforks":"11","xmlEncodedName":"goo.js"},{"name":"Satnav","tags":["routing","micro","hashchange","pushState"],"description":"A micro (~1.5kb gzipped) JS routing library. Satnav provides functionality for Regex-like paths in JavaScript.","url":"https://github.com/f5io/satnav-js","size":"1.3 kB","ghwatchers":"64","ghforks":"8","xmlEncodedName":"Satnav"},{"name":"mediahack.js","tags":["mediaquery","mediaqueries","css3","css","media"],"description":"Add media-query classes to DOM nodes","url":"https://github.com/pomke/mediahack","size":"0.4 kB","ghwatchers":"8","ghforks":"3","xmlEncodedName":"mediahack.js"},{"name":"Tempreites","tags":["templating"],"description":"Semantic templates. Binds data to HTML markup. Direto da roça for the browser and server, no DOM needed, just strings.","url":"https://github.com/fiatjaf/tempreites","ghwatchers":"27","ghforks":"2","size":"2.3 kB","xmlEncodedName":"Tempreites"},{"name":"asynquence","tags":["async","asynchronous","control flow","flow control"],"description":"asynchronous flow-control using sequences and gates","url":"https://github.com/getify/asynquence","ghwatchers":"1,318","ghforks":"93","size":"2 kB","xmlEncodedName":"asynquence"},{"name":"native-promise-only","tags":["async","asynchronous","promise","promises"],"description":"A polyfill for native ES6 Promises as close as possible (no extensions) to the strict spec definitions.","url":"https://github.com/getify/native-promise-only","ghwatchers":"621","ghforks":"62","size":"1.2 kB","xmlEncodedName":"native-promise-only"},{"name":"Miniscroll.js","tags":["scrollbar","touch","desktop","scroll"],"description":"A simple scrollbar for desktop and mobile application using javascript. ","url":"https://github.com/rogerluiz/Miniscroll-JS","ghwatchers":"69","ghforks":"19","size":"3.3 kB","xmlEncodedName":"Miniscroll.js"},{"name":"remove.js","tags":["string","remove","cleanup","redundant","gibberish","trim"],"description":"Small but powerful string cleanup and reduction library.","url":"https://github.com/grssam/snippets/tree/master/remove.js","size":"1.5 kB","ghwatchers":"3","ghforks":"1","xmlEncodedName":"remove.js"},{"name":"Taggle.js","tags":["tags","input","autocomplete"],"description":"Form-ready delicious style tagging library.","url":"http://sean.is/poppin/tags","ghwatchers":"543","ghforks":"113","size":"3.6 kB","xmlEncodedName":"Taggle.js"},{"name":"OneDollar.js","tags":["gesture","recognition","recognizer","multitouch","interactive","input","jquery"],"description":"A JavaScript implementation of the $1 Gesture Recognizer, a two-dimensional template based gesture recognition","url":"https://github.com/nok/onedollar-unistroke-coffee","size":"1.6 kB","ghwatchers":"53","ghforks":"3","xmlEncodedName":"OneDollar.js"},{"name":"LocalDB.js","tags":["nosql","ODM","mongo","json","database","web applications","localStorage"],"description":"LocalDB.js is a tool that maps the structure of the databases in objects using the localStorage API, no database drivers are required, just add the library and use it!","url":"http://agnostic.github.io/LocalDB.js","size":"1.9 kB","ghwatchers":"85","ghforks":"14","xmlEncodedName":"LocalDB.js"},{"name":"mess-js","tags":["message","toast","toasts","android","dialog","info"],"description":"mess - Messages Extremely Simple Script: dialog 'android toast' like messages.","url":"https://github.com/graciano/mess","size":"0.6 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"mess-js"},{"name":"Countable","tags":["paragraphs","words","characters","counting","live","text"],"description":"Countable is a JavaScript function to add live paragraph-, word- and character-counting to an HTML element.","url":"http://radlikewhoa.github.io/Countable","ghwatchers":"1,504","ghforks":"140","size":"0.9 kB","xmlEncodedName":"Countable"},{"name":"css-time.js","tags":["css","time","string","milliseconds","convert","conversion"],"description":"A tiny library that converts milliseconds to and from CSS time strings.","url":"https://github.com/philbooth/css-time.js","size":"0.3 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"css-time.js"},{"name":"accounting.js","tags":["math","number","money","currency parsing","currency formatting"],"description":"A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.","url":"http://josscrowcroft.github.io/accounting.js/","ghwatchers":"3,889","ghforks":"439","size":"1.2 kB","xmlEncodedName":"accounting.js"},{"name":"sloth.js","tags":["lazy","initialize","viewport","amd","library","scroll"],"description":"Lazy initialize components of a webpage when they become visible","url":"https://github.com/hakubo/Sloth","size":"0.4 kB","ghwatchers":"49","ghforks":"7","xmlEncodedName":"sloth.js"},{"name":"dzt-url-parser","tags":["URL","parse","getParameters","parser","param"],"description":"parse the url parameters(or location.search) to an object.","url":"https://github.com/dajbd/dzt-url-parser","size":"0.3 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"dzt-url-parser"},{"name":"atom.js","tags":["async","barrier","control","events","flow","properties"],"description":"Small class providing async control flow, property listeners, barrier pattern, and more. For node and browser.","url":"https://github.com/zynga/atom","ghwatchers":"112","ghforks":"22","size":"1.5 kB","xmlEncodedName":"atom.js"},{"name":"isMobile","tags":["mobile","mobile device","tablet"],"description":"A simple JS library that detects if the device visiting the page is an Apple phones/tablet, Android phone/tablet, or a seven inch device (Nexus 7, Kindle Fire, Nook Tablet, Galaxy Tab)","url":"https://github.com/kaimallea/isMobile","size":"0.7 kB","ghwatchers":"1,552","ghforks":"219","xmlEncodedName":"isMobile"},{"name":"tinyrequire","tags":["modules","loader","require","define","dependency","manager"],"description":"To the point dependency management.","url":"https://github.com/adriancooney/tinyrequire","ghwatchers":"26","ghforks":"3","size":"0.7 kB","xmlEncodedName":"tinyrequire"},{"name":"token-boy","tags":["token","api","digest","base64","api-token"],"description":"Serves 'n' bit tokens, either digested or not.","url":"https://github.com/zeusdeux/token-boy","size":"0.4 kB","ghwatchers":"3","ghforks":"1","xmlEncodedName":"token-boy"},{"name":"Respond.js","tags":["polyfill","min-width","max-width","Media Queries","CSS3"],"description":"A fast & lightweight polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more).","url":"https://github.com/scottjehl/Respond","size":"2 kB","ghwatchers":"11,323","ghforks":"3,700","xmlEncodedName":"Respond.js"},{"name":"miuri.js","tags":["client","server","util","parser","uri"],"description":"Simple URI parser/builder","url":"https://github.com/radmen/miuri.js","size":"1.2 kB","ghwatchers":"38","ghforks":"9","xmlEncodedName":"miuri.js"},{"name":"RSVP.js","tags":["Promises/A+","asynchronous"],"description":"it is a tiny implementation of Promises/A+ and a mixin for turning objects into event targets. It works in node and the browser.","url":"https://github.com/tildeio/rsvp.js","ghwatchers":"3,481","ghforks":"263","size":"4.4 kB","xmlEncodedName":"RSVP.js"},{"name":"Chibi","tags":["chibi","framework"],"description":"A tiny JavaScript micro-framework.","url":"https://github.com/kylebarrow/chibi","size":"2.6 kB","ghwatchers":"475","ghforks":"41","xmlEncodedName":"Chibi"},{"name":"check-types.js","tags":["types","type-checking","duck-typing"],"description":"A small library for checking types and throwing exceptions.","url":"https://github.com/philbooth/check-types.js","size":"2.1 kB","ghwatchers":"232","ghforks":"32","xmlEncodedName":"check-types.js"},{"name":"augment","tags":["augment","augments","augmentation","extend","extends","extension","prototype","prototypal","class","classical","object","inheritance","uber","super","constructor","oop"],"description":"The world's smallest and fastest classical JavaScript inheritance pattern.","url":"https://github.com/javascript/augment","size":"0.3 kB","ghwatchers":"893","ghforks":"38","xmlEncodedName":"augment"},{"name":"lexer","tags":["lex","lexer","lexical","analysis","scan","scanner","scanning","token","tokenize","tokenizer","tokenization","flex","jison"],"description":"An elegant armor-plated JavaScript lexer modelled after flex. Easily extensible to tailor to your need for perfection.","url":"https://github.com/aaditmshah/lexer","size":"0.9 kB","ghwatchers":"262","ghforks":"28","xmlEncodedName":"lexer"},{"name":"infuse.js","tags":["ioc","di","injection","dependency","framework"],"description":"IOC library to handle dependency injection","url":"https://github.com/soundstep/infuse.js","size":"2.1 kB","ghwatchers":"87","ghforks":"14","xmlEncodedName":"infuse.js"},{"name":"vagueTime.js","tags":["time","date"],"description":"formats time differences as a vague time, e.g. 'just now' or '3 weeks ago'","url":"https://github.com/philbooth/vagueTime.js","ghwatchers":"188","ghforks":"14","size":"0.7 kB","xmlEncodedName":"vagueTime.js"},{"name":"disTime.js","tags":["time","date","dates","times","language","ago"],"description":"converts and updates UNIX-Timestamps to strings like \"5 days ago\" in six languages (en, de, it, es, fr, pt)","url":"https://github.com/SimonWaldherr/disTime.js","size":"0.8 kB","ghwatchers":"30","ghforks":"14","xmlEncodedName":"disTime.js"},{"name":"debug-websql","tags":["websql","debug","sql"],"description":"console.log every call made to Web SQL, for debugging purposes","url":"https://github.com/nolanlawson/debug-websql","size":"0.9 kB","ghwatchers":"5","ghforks":"2","xmlEncodedName":"debug-websql"},{"name":"parseTime.js","tags":["time","date","dates","times","language","parse","strings"],"description":"convert strings like \"five days ago\" to an integer (with time in milliseconds) in three languages (en, de, pt)","url":"https://github.com/SimonWaldherr/parseTime.js","size":"2.4 kB","ghwatchers":"23","ghforks":"15","xmlEncodedName":"parseTime.js"},{"name":"is.js","tags":["condition","validate"],"description":"Micro javascript library that allows you to do conditions faster.","url":"https://github.com/Cedriking/is.js","size":"1.7 kB","ghwatchers":"144","ghforks":"14","xmlEncodedName":"is.js"},{"name":"wavyjs","tags":["audio","wav","sound","html5","RIFF"],"description":"Zero dependency javascript RIFF Wav file manipulation routines.","url":"https://github.com/northeastnerd/wavyjs","size":"1.9 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"wavyjs"},{"name":"jBone","tags":["base","events","html","performance","backbone","jquery","attributes","manipulations","dom","mobile"],"description":"JavaScript Library for Events and DOM manipulation. Replacement jQuery for Backbone in browsers.","url":"https://github.com/kupriyanenko/jbone","size":"3.2 kB","ghwatchers":"287","ghforks":"37","xmlEncodedName":"jBone"},{"name":"Smoothie Charts","tags":["canvas","charts","graphs"],"description":"Smooooooth JavaScript charts for realtime streaming data","url":"http://smoothiecharts.org/","size":"3.8 kB","ghwatchers":"1,793","ghforks":"185","xmlEncodedName":"Smoothie Charts"},{"name":"svg-path.js","tags":["SVG","raphael","graphics"],"description":"Chainable SVG path string generator with some sugar added","url":"https://github.com/ZIJ/svg-path","size":"0.7 kB","ghwatchers":"28","ghforks":"4","xmlEncodedName":"svg-path.js"},{"name":"DOMinate","tags":["dom-builder","dom","templating"],"description":"DOMinate the DOM with this simple, yet powerful DOM building utility and template engine.","url":"https://github.com/adius/DOMinate/","size":"0.4 kB","ghwatchers":"32","ghforks":"6","xmlEncodedName":"DOMinate"},{"name":"soma.js","tags":["framework","mvc","events","command","observer"],"description":"Javascript mvc framework that help developers write loosely-coupled applications to increase scalability and maintainability.","url":"http://somajs.github.io/somajs/","size":"4.1 kB","ghwatchers":"276","ghforks":"33","xmlEncodedName":"soma.js"},{"name":"Panzer","tags":["data"],"description":"A comprehensive node-tree solution, for smart data","url":"https://github.com/bemson/Panzer","size":"4.5 kB","ghwatchers":"24","ghforks":"4","xmlEncodedName":"Panzer"},{"name":"Histogram","tags":["canvas","color"],"description":"Provides a histogram data structure from a PNG/JPEG/GIF image path. NodeJS, AMD module and vanilla JS support","url":"https://github.com/Munter/node-histogram","size":"0.8 kB","ghwatchers":"48","ghforks":"9","xmlEncodedName":"Histogram"},{"name":"Simplify.js","tags":["math","geometry","simplification","polyline"],"description":"A tiny high-performance JavaScript 2D/3D polyline simplification library.","url":"http://mourner.github.io/simplify-js/","size":"0.5 kB","xmlEncodedName":"Simplify.js"},{"name":"DOMpteur","tags":["dom","ready","html","getElement","selector"],"description":"play with the Document Object Model (DOM) tree - change and insert Elements.","url":"https://github.com/SimonWaldherr/DOMpteur","size":"2.3 kB","ghwatchers":"4","ghforks":"1","xmlEncodedName":"DOMpteur"},{"name":"cssFx","tags":["css","css3","polyfill"],"description":"Standalone polyfill that inserts the vendor-specific CSS3 properties necessary for old and new browsers.","url":"http://imsky.github.io/cssFx/","size":"2.9 kB","xmlEncodedName":"cssFx"},{"name":"TinyCore.js","tags":["architecture","module","scalable","spa"],"description":"A tiny JavaScript modular architecture library.","url":"https://github.com/mawrkus/tinycore","size":"1.3 kB","ghwatchers":"96","ghforks":"9","xmlEncodedName":"TinyCore.js"},{"name":"microevent.js","tags":["events","node"],"description":"event emitter for any javascript object for node and browser.","url":"https://github.com/jeromeetienne/microevent.js","size":"0.3 kB","ghwatchers":"748","ghforks":"137","xmlEncodedName":"microevent.js"},{"name":"dropinrequire.js","tags":["loader","commonjs","require","node"],"description":"dropin replacement for require() in browser.","url":"http://jeromeetienne.github.io/dropinrequire.js/","size":"0.5 kB","xmlEncodedName":"dropinrequire.js"},{"name":"genData","tags":["data"],"description":"A normalization pattern to build, query, and manipulate everything.","url":"https://github.com/bemson/genData/","size":"0.6 kB","ghwatchers":"17","ghforks":"4","xmlEncodedName":"genData"},{"name":"Pass-Meter.js","tags":["password","strength","meter"],"description":"Simple password strength testing.","url":"https://github.com/syntaqx/pass-meter","size":"0.7 kB","ghwatchers":"13","ghforks":"4","xmlEncodedName":"Pass-Meter.js"},{"name":"nTh","tags":["string","numbers","formatting","language","text"],"description":"A micro-library to return ordinal suffixes from integers (ie: 1st, 2nd, 3rd, 7th of 9)","url":"https://github.com/dperish/nTh.js","size":"0.2 kB","ghwatchers":"10","ghforks":"2","xmlEncodedName":"nTh"},{"name":"Slang","tags":["string","functional","language"],"description":"A collection of utility functions for strings","url":"https://github.com/devongovett/slang","size":"2.1 kB","ghwatchers":"160","ghforks":"11","xmlEncodedName":"Slang"},{"name":"Rococo","tags":["mvc","data","functional","events"],"description":"Rococo is a Micro Framework to create elegant and robust Javascript Applications.","url":"http://rococojs.org/","size":"0.6 kB","ghwatchers":"7","ghforks":"1","xmlEncodedName":"Rococo"},{"name":"Backbone","tags":["mvc","data","functional"],"description":"Lightweight MVC—models with custom events, collections with rich enumerables, views and RESTful JSON.","url":"http://backbonejs.org/","size":"7.7 kB","ghwatchers":"27,184","ghforks":"5,750","xmlEncodedName":"Backbone"},{"name":"$dom","tags":["dom","events","animation"],"description":"Selecting, styling, traversing and animating DOM elements.","url":"https://github.com/julienw/dollardom","ghwatchers":"269","ghforks":"36","size":"2.5 kB","xmlEncodedName":"$dom"},{"name":"DOMBrew","tags":["dom","dom-builder"],"description":"Clean API high performance DOM builder","url":"https://github.com/glebm/DOMBrew","ghwatchers":"26","ghforks":"2","size":"1 kB","xmlEncodedName":"DOMBrew"},{"name":"HEX/RGB","tags":["color"],"description":"Two way color conversion for Hexadecimal and RGB integer colors","url":"https://github.com/daniellmb/HEX-RGB-Conversion","tinyminify":true,"ghwatchers":"36","ghforks":"14","size":"0.1 kB","xmlEncodedName":"HEX/RGB"},{"name":"smoke-pure.js","tags":["modal library","simple modal library","modal","simple modal","alert","confirm","prompt"],"description":"A simple modal library for JS.","url":"https://github.com/agamemnus/smoke-pure.js","ghwatchers":"13","ghforks":"1","size":"2.1 kB","xmlEncodedName":"smoke-pure.js"},{"name":"ready.js","tags":["async","node.js","watch","flow","flow control"],"description":"Monitor multiple async operations and triggers when all or some are complete.","url":"https://github.com/thanpolas/ready.js","size":"0.9 kB","ghwatchers":"21","ghforks":"2","xmlEncodedName":"ready.js"},{"name":"MinPubSub","tags":["events","pubsub"],"description":"A publish/subscribe messaging framework","url":"https://github.com/daniellmb/MinPubSub","size":"0.3 kB","ghwatchers":"282","ghforks":"55","xmlEncodedName":"MinPubSub"},{"name":"Namespacer","tags":["namespace","modules"],"description":"A simple library for creating namespaced objects in the browser.","url":"https://github.com/sporto/namespacer.js","size":"0.1 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"Namespacer"},{"name":"Zepto","tags":["base","dom","webkit","jquery","ajax","events","mobile"],"description":"jQuery API-compatible framework for modern web browsers. Optional Ajax, Events, Data and Touch modules.","url":"http://zeptojs.com","size":"5.4 kB","xmlEncodedName":"Zepto"},{"name":"Lemonad","tags":["functional","monads","data","protocols"],"description":"A functional library inspired by Clojure and ClojureScript, built on Underscore","url":"http://functionaljs.org/","size":"3.5 kB","ghwatchers":"623","ghforks":"34","xmlEncodedName":"Lemonad"},{"name":"Weld","tags":["templating"],"description":"Completely unobtrusive, full featured template antimatter. Works in Node.js or the Browser, awesome built-in debugger.","url":"http://github.com/tmpvar/weld","ghwatchers":"689","ghforks":"36","size":"2.1 kB","xmlEncodedName":"Weld"},{"name":"Mustache","tags":["templating"],"description":"Minimal, logic-less templating with {{mustaches}}. Great for server- or client-side templating.","url":"http://mustache.github.io/","size":"2.2 kB","xmlEncodedName":"Mustache"},{"name":"tiny-mustache","tags":["templating","template","tiny"],"description":"The smallest implementation of Mustache logic-less template engine.","url":"https://github.com/aishikaty/tiny-mustache","ghwatchers":"25","ghforks":"4","size":"0.4 kB","xmlEncodedName":"tiny-mustache"},{"name":"LABjs","tags":["loader"],"description":"The *performance* script loader: on-demand parallel script loading with ordered execution for dependencies.","url":"http://labjs.com/","size":"2 kB","xmlEncodedName":"LABjs"},{"name":"Qwery","tags":["css"],"description":"Blazing fast query selector engine allowing you to select elements with CSS1, CSS2 & CSS3 selectors.","url":"https://github.com/ded/qwery","size":"0.6 kB","ghwatchers":"1,100","ghforks":"93","xmlEncodedName":"Qwery"},{"name":"preach","tags":["publish","subscribe","pubsub","browser","node"],"description":"A lightweight pubsub utility for node and the browser.","url":"https://github.com/zeusdeux/preach","ghwatchers":"3","ghforks":"0","size":"2 kB","xmlEncodedName":"preach"},{"name":"mixit","tags":["mixin","merge","json"],"description":"a smart mixin/merging object helper","url":"https://github.com/stephanebachelier/mixit","size":"0.2 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"mixit"},{"name":"Lawnchair","tags":["data","storage","webkit","mobile"],"description":"Client side JSON document store. Perfect for WebKit mobile apps.","url":"http://brian.io/lawnchair/","size":"1.1 kB","ghwatchers":"2,157","ghforks":"258","xmlEncodedName":"Lawnchair"},{"name":"Transparency.js","tags":["templating"],"description":"Semantic template engine for the browser that maps JSON objects to DOM elements by id, class and data-bind attributes.","url":"https://github.com/leonidas/transparency","size":"0.6 kB","ghwatchers":"956","ghforks":"111","xmlEncodedName":"Transparency.js"},{"name":"BuildSugar","tags":["templating"],"description":"Bizarrely clean & simple syntax sugar for building HTML/XML strings","url":"http://jsfiddle.net/SubtleGradient/4W3RR/","size":"0.2 kB","xmlEncodedName":"BuildSugar"},{"name":"Tweet-Templ","tags":["templating"],"description":"function t(s,d){for(var p in d)s=s.replace(new RegExp('{'+p+'}','g'),d[p]);return s;}","url":"http://mir.aculo.us/2011/03/09/little-helpers-a-tweet-sized-javascript-templating-engine/","size":"0.1 kB","xmlEncodedName":"Tweet-Templ"},{"name":"Bonzo","tags":["dom"],"description":"Hassle-free, library agnostic, extensible DOM utility.","url":"https://github.com/ded/bonzo","ghwatchers":"1,248","ghforks":"136","size":"3.9 kB","xmlEncodedName":"Bonzo"},{"name":"Bean","tags":["events","dom"],"description":"Bean is a slick, cross-platform, framework-agnostic event utility designed for desktop, mobile, and touch-based browsers. ","url":"https://github.com/fat/bean","ghwatchers":"1,359","ghforks":"120","size":"3.9 kB","xmlEncodedName":"Bean"},{"name":"$script.js","tags":["loader"],"description":"An asynchronous JavaScript loader and dependency manager with an astonishingly impressive footprint.","url":"https://github.com/ded/script.js","ghwatchers":"2,548","ghforks":"309","size":"0.8 kB","xmlEncodedName":"$script.js"},{"name":"Klass","tags":["language","class"],"description":"An expressive, cross platform JavaScript Class provider with a slick, classical interface to prototypal inheritance.","url":"https://github.com/ded/klass","size":"0.5 kB","ghwatchers":"743","ghforks":"83","xmlEncodedName":"Klass"},{"name":"OORJa","tags":["language","class"],"description":"OORJa = Object Oriented JavaScript","url":"http://maxpert.github.io/oorja/","size":"0.6 kB","xmlEncodedName":"OORJa"},{"name":"Classy","tags":["language","class"],"description":"Classy is a small JavaScript library that implements Python inspired classes for JavaScript.","url":"http://classy.pocoo.org/","size":"0.7 kB","xmlEncodedName":"Classy"},{"name":"Director","tags":["spa"],"description":"A lightweight, full featured client side router for single page apps.","url":"https://github.com/flatiron/director","size":"3.5 kB","ghwatchers":"5,238","ghforks":"494","xmlEncodedName":"Director"},{"name":"snack.js","tags":["base","dom","events","ajax","language"],"description":"A tiny, cross-browser, library with DOM manipulation, events, pub/sub, Ajax and language utilities.","url":"http://snackjs.com/","size":"3.1 kB","xmlEncodedName":"snack.js"},{"name":"Ender","tags":["compose","base","mobile"],"description":"An open, powerful, micro-to-macro API for composing your own custom JavaScript library.","url":"http://ender.no.de","size":"0.5 kB","xmlEncodedName":"Ender"},{"name":"Mold","tags":["templating"],"description":"Mold is a templating library.","url":"http://marijnhaverbeke.nl/mold/","size":"1.5 kB","ghwatchers":"39","ghforks":"6","xmlEncodedName":"Mold"},{"name":"Reqwest","tags":["ajax"],"description":"Robust wrapper for asynchronous http requests.","url":"https://github.com/ded/Reqwest","size":"3.5 kB","ghwatchers":"2,645","ghforks":"319","xmlEncodedName":"Reqwest"},{"name":"majaX.js","tags":["ajax","http","xml","csv","json","binary","api"],"description":"make AJAX Requests and get (parsed) values (and headers).","url":"https://github.com/SimonWaldherr/majaX.js","size":"4.2 kB","ghwatchers":"18","ghforks":"4","xmlEncodedName":"majaX.js"},{"name":"JSON2","tags":["polyfill","json"],"description":"Creates a JSON property in the global object, if there isn't already one, with stringify and parse methods.","url":"https://github.com/douglascrockford/JSON-js","size":"1.3 kB","ghwatchers":"7,447","ghforks":"4,245","xmlEncodedName":"JSON2"},{"name":"unblock.js","tags":["async","control","flow","functional"],"description":"A single function for dead simple asynchronous control flow.","url":"https://github.com/machellerogden/unblock","size":"0.3 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"unblock.js"},{"name":"yepnope","tags":["polyfill","loader"],"description":"yepnope is an asynchronous conditional resource loader that allows you to load only the scripts that your users need.","url":"http://yepnopejs.com/","size":"1 kB","xmlEncodedName":"yepnope"},{"name":"ICanHaz","tags":["templating"],"description":"Simple & powerful client-side templating for jQuery or Zepto.js.","url":"https://github.com/HenrikJoreteg/ICanHaz.js","size":"2.3 kB","ghwatchers":"840","ghforks":"144","xmlEncodedName":"ICanHaz"},{"name":"Q","tags":["functional","events"],"description":"when/defer-style promises for JavaScript (CommonJS/Promises/A,B,D)","url":"https://github.com/kriskowal/q","size":"4.7 kB","ghwatchers":"14,217","ghforks":"1,204","xmlEncodedName":"Q"},{"name":"domReady","tags":["dom","event","ready","load"],"description":"Lets you know when the DOM is ready","url":"https://github.com/ded/domready","size":"0.3 kB","ghwatchers":"822","ghforks":"122","xmlEncodedName":"domReady"},{"name":"ES6-Map-Shim","tags":["language","polyfill"],"description":"Shim for latest ES6.next Map spec","url":"https://github.com/eriwen/es6-map-shim","size":"0.8 kB","ghwatchers":"21","ghforks":"3","xmlEncodedName":"ES6-Map-Shim"},{"name":"Loadrunner","tags":["loader"],"description":"Simple, flexible and sane JavaScript loader and build tool for browsers","url":"https://github.com/danwrong/loadrunner","size":"2.8 kB","ghwatchers":"274","ghforks":"38","xmlEncodedName":"Loadrunner"},{"name":"JsDefer","tags":["loader"],"description":"Script loader, using the 'Deferred' pattern for async operations.","url":"https://github.com/BorisMoore/jsdefer/","size":"2.4 kB","ghwatchers":"123","ghforks":"16","xmlEncodedName":"JsDefer"},{"name":"BottleJS","tags":["dependency injection","dependency","injection","ioc","di","provider"],"description":"A powerful, extensible dependency injection micro container.","url":"https://github.com/young-steveo/bottlejs","size":"1.7 kB","ghwatchers":"838","ghforks":"54","xmlEncodedName":"BottleJS"},{"name":"Bootstrap","tags":["loader"],"description":"A small, simple bootloader. No frills. Black and white label.","url":"https://bitbucket.org/scott_koon/bootstrap","size":"0.6 kB","xmlEncodedName":"Bootstrap"},{"name":"LazyLoad","tags":["loader"],"description":"Async JavaScript and CSS loader.","url":"https://github.com/rgrove/lazyload","size":"1 kB","ghwatchers":"1,303","ghforks":"299","xmlEncodedName":"LazyLoad"},{"name":"SUL.js","tags":["dom","lightweight","shorthand","ajax"],"description":"Small library for DOM and AJAX operations (jQuery function style).","url":"https://github.com/MrOnlineCoder/sul.js","size":"1.2 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"SUL.js"},{"name":"Valentine","tags":["functional","language","data"],"description":"JavaScripts functional sister providing iterators, type checking, and basic utils","url":"https://github.com/ded/valentine","size":"2.1 kB","ghwatchers":"293","ghforks":"21","xmlEncodedName":"Valentine"},{"name":"TurtleWax","tags":["canvas","graphics"],"description":"LOGO-inspired canvas drawing lib, adds method chaining and polar coordinates for added fun.","url":"https://github.com/davebalmer/turtlewax","size":"0.7 kB","ghwatchers":"95","ghforks":"17","xmlEncodedName":"TurtleWax"},{"name":"mom","tags":["dependency","injection","module","loader","event bus","eventBus"],"description":"Dynamic Loading of Javascript based on DOM elements.","url":"http://mom.js.org","size":"3.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"mom"},{"name":"picoCSS","tags":["CSS","CSS3","mobile"],"description":"Basic CSS DOM manipulation and animation optimized for webkit browsers(Safari, Chrome) for building mobile web apps","url":"https://github.com/vladocar/picoCSS","ghwatchers":"48","ghforks":"9","size":"0.3 kB","xmlEncodedName":"picoCSS"},{"name":"H5F.js","tags":["polyfill"],"description":"Adds support for HTML5 Forms chapters new field input types, attributes and constraint validation API in non-supporting browsers.","url":"https://github.com/ryanseddon/H5F","ghwatchers":"775","ghforks":"117","size":"2 kB","xmlEncodedName":"H5F.js"},{"name":"EventEmitter","tags":["events"],"description":"Evented JavaScript for the browser","url":"https://github.com/Olical/EventEmitter","size":"1 kB","ghwatchers":"2,433","ghforks":"304","xmlEncodedName":"EventEmitter"},{"name":"Fermata","tags":["ajax"],"description":"Succinct native REST client, for client-side web apps and node.js. Turns URLs into magic JavaScript objects.","url":"https://github.com/natevw/fermata","size":"3.1 kB","ghwatchers":"333","ghforks":"27","xmlEncodedName":"Fermata"},{"name":"Base64.js","tags":["polyfill"],"description":"`window.btoa` and `window.atob` for browsers which don't provide these functions.","url":"https://github.com/davidchambers/Base64.js","size":"0.5 kB","ghwatchers":"297","ghforks":"67","xmlEncodedName":"Base64.js"},{"name":"GamepadMicro","tags":["gamepad","html5"],"description":"Micro library that interfaces with the HTML5 Gamepad API and publishes gamepad update events.","url":"https://github.com/likethemammal/gamepad-micro/","ghwatchers":"22","ghforks":"2","size":"1.9 kB","xmlEncodedName":"GamepadMicro"},{"name":"nimble","tags":["functional","async"],"description":"Functional flow-control for JavaScript. Combines features of the underscore and async libraries.","url":"http://caolan.github.io/nimble/","size":"0.8 kB","xmlEncodedName":"nimble"},{"name":"Events.js","tags":["events","dom"],"description":"Cross-browser DOM events, with keystroke handling, hashchange, mouseenter/leave.","url":"https://github.com/kbjr/Events.js","ghwatchers":"141","ghforks":"18","size":"4.1 kB","xmlEncodedName":"Events.js"},{"name":"JS-Signals","tags":["events"],"description":"Custom Event/Messaging system for JavaScript.","url":"http://millermedeiros.github.io/js-signals/","size":"1.1 kB","xmlEncodedName":"JS-Signals"},{"name":"Crossroads.js","tags":["route","events","spa"],"description":"Powerful JavaScript URL routing/dispatch for server-side and client-side applications.","url":"http://millermedeiros.github.io/crossroads.js/","size":"2.8 kB","xmlEncodedName":"Crossroads.js"},{"name":"Hasher","tags":["spa"],"description":"Browser history manager for rich-media applications.","url":"https://github.com/millermedeiros/Hasher","size":"1.2 kB","ghwatchers":"495","ghforks":"84","xmlEncodedName":"Hasher"},{"name":"Satisfy","tags":["html","css","selector"],"description":"CSS Selector to HTML generator.","url":"https://github.com/padolsey/satisfy","size":"1 kB","ghwatchers":"183","ghforks":"13","xmlEncodedName":"Satisfy"},{"name":"jaylist","tags":["functional","extend","data"],"description":"A simple wrapper for JavaScript's built-in hash storage.","url":"http://benbscholz.github.io/jaylist","size":"0.8 kB","xmlEncodedName":"jaylist"},{"name":"LeviRoutes","tags":["history","route","spa"],"description":"A basic routes framework for JS that hooks in to HTML5 history","url":"http://leviroutes.com","size":"0.7 kB","xmlEncodedName":"LeviRoutes"},{"name":"FormfactorJS","tags":["formfactor","loader"],"description":"A formfactor detection library, to help developers target tablet, tvs, desktops and handhelds (or anything you choose)","url":"http://formfactorjs.com","size":"1.3 kB","xmlEncodedName":"FormfactorJS"},{"name":"Augment.js","tags":["polyfill"],"description":"Enables use of modern JavaScript by augmenting built in objects with the latest JavaScript methods.","url":"http://augmentjs.com","size":"1.4 kB","ghwatchers":"425","ghforks":"27","xmlEncodedName":"Augment.js"},{"name":"thumbs.js","tags":["polyfill"],"description":"Add touch event support to the desktop and other mouse-based browsers.","url":"http://mwbrooks.github.io/thumbs.js/","size":"0.4 kB","xmlEncodedName":"thumbs.js"},{"name":"pathparser.js","tags":["route","routing","query","parameters"],"description":"Tiny, simple-to-use URL parser/router","url":"https://github.com/dstillman/pathparser.js","size":"0.6 kB","ghwatchers":"57","ghforks":"12","xmlEncodedName":"pathparser.js"},{"name":"domchanger","tags":["dom","ui","reactive"],"description":"Domchanger calculates diffs between virtual dom trees (JSONML) and applies only the difference to the dom","url":"https://github.com/creationix/domchanger","size":"2 kB","ghwatchers":"62","ghforks":"15","xmlEncodedName":"domchanger"},{"name":"onfontload","tags":["font","load","webfont","font-face","FOUT"],"description":"Detects when fonts are loaded.","url":"https://github.com/eduardomb/onfontload","size":"1 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"onfontload"},{"name":"msgpack-js","tags":["msgpack","json","format","encoder","decoder"],"description":"A msgpack encoder and decoder using ArrayBuffer and DataView","url":"https://github.com/creationix/msgpack-js-browser","size":"2 kB","ghwatchers":"87","ghforks":"25","xmlEncodedName":"msgpack-js"},{"name":"Class.js","tags":["language","class","inheritance"],"description":"Lighting fast class system. Beautiful API.","url":"https://github.com/DominikGuzei/Class.js","size":"0.8 kB","ghwatchers":"88","ghforks":"7","xmlEncodedName":"Class.js"},{"name":"lscache","tags":["data","storage"],"description":"A localStorage-based memcache-inspired client-side caching library.","url":"https://github.com/pamelafox/lscache","ghwatchers":"1,060","ghforks":"147","size":"1.1 kB","xmlEncodedName":"lscache"},{"name":"imagine","tags":["loader","async"],"description":"An image (pre)loader with promises","url":"https://github.com/pyrsmk/imagine","size":"0.4 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"imagine"},{"name":"panorama","tags":["canvas","responsive"],"description":"Lighten background images with Canvas2D","url":"https://github.com/pyrsmk/panorama","size":"0.7 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"panorama"},{"name":"CSSTemplate","tags":["css","templates","global","client","browser","util"],"description":"Inject and update dynamic CSS using simple js templating","url":"https://github.com/ezakto/CSSTemplate.js","size":"0.2 kB","ghwatchers":"12","ghforks":"2","xmlEncodedName":"CSSTemplate"},{"name":"ClassIE","tags":["feature"],"description":"ClassIE is an unobstrusive library which detects Internet Explorer version for JS and CSS sides","url":"https://github.com/pyrsmk/ClassIE","ghwatchers":"20","ghforks":"1","size":"0.2 kB","xmlEncodedName":"ClassIE"},{"name":"Sheethub","tags":["polyfill"],"description":"A CSS backdoor API for providing awesome scripts in a centralized way","url":"https://github.com/pyrsmk/Sheethub","size":"0.8 kB","ghwatchers":"24","ghforks":"5","xmlEncodedName":"Sheethub"},{"name":"nut","tags":["css"],"description":"A concise CSS selector engine","url":"https://github.com/pyrsmk/nut","size":"0.5 kB","ghwatchers":"25","ghforks":"4","xmlEncodedName":"nut"},{"name":"molt","tags":["responsive"],"description":"Image updater for responsive designs","url":"https://github.com/pyrsmk/molt","size":"1 kB","ghwatchers":"51","ghforks":"6","xmlEncodedName":"molt"},{"name":"W","tags":["responsive"],"description":"Width management tool for responsive designers","url":"https://github.com/pyrsmk/W","size":"0.6 kB","ghwatchers":"115","ghforks":"12","xmlEncodedName":"W"},{"name":"toast","tags":["loader"],"description":"A simple CSS and JS resource loader","url":"https://github.com/pyrsmk/toast","size":"0.6 kB","ghwatchers":"106","ghforks":"15","xmlEncodedName":"toast"},{"name":"mediatizr","tags":["polyfill","responsive"],"description":"A media queries polyfill","url":"https://github.com/pyrsmk/mediatizr","size":"0.6 kB","ghwatchers":"38","ghforks":"12","xmlEncodedName":"mediatizr"},{"name":"qwest","tags":["ajax","async"],"description":"Ajax library with promises and XHR2 support","url":"https://github.com/pyrsmk/qwest","size":"2.2 kB","ghwatchers":"716","ghforks":"85","xmlEncodedName":"qwest"},{"name":"quark","tags":["base","compose"],"description":"Build your own framework from scratch","url":"https://github.com/pyrsmk/quark","size":"0.8 kB","ghwatchers":"13","ghforks":"3","xmlEncodedName":"quark"},{"name":"DragDrop","tags":["dragdrop","ui"],"description":"Drag-and-Drop functionality for advanced UI development.","url":"https://github.com/kbjr/DragDrop","size":"2.1 kB","ghwatchers":"179","ghforks":"38","xmlEncodedName":"DragDrop"},{"name":"earley-parser-js","tags":["parsing","context-free grammar","earley parser","natural language processing","nlp","parse tree"],"description":"General purpose context-free languages parser - Earley parser","url":"https://github.com/lagodiuk/earley-parser-js","size":"1.6 kB","ghwatchers":"44","ghforks":"6","xmlEncodedName":"earley-parser-js"},{"name":"Jaml","tags":["templating"],"description":"Jaml tries to emulate Ruby's Haml library, making it easy to generate HTML in your JavaScript projects.","url":"http://edspencer.github.io/jaml/","size":"1.2 kB","xmlEncodedName":"Jaml"},{"name":"Async GA","tags":["analytics"],"description":"Reduced Google's original analytics snippet by one third, with better performance.","url":"http://mathiasbynens.be/notes/async-analytics-snippet","size":"0.2 kB","xmlEncodedName":"Async GA"},{"name":"Metamorph.js","tags":["string","HTML","DOM"],"description":"Metamorph.js is a library that allows you to create a string of HTML, insert it into the DOM, and update the contents later.","url":"https://github.com/tomhuda/metamorph.js","size":"1.6 kB","ghwatchers":"261","ghforks":"27","xmlEncodedName":"Metamorph.js"},{"name":"Morpheus","tags":["animation","jsanimation","color"],"description":"An animator that lets you tween in parallel on multiple elements, from integers to colors in a single high-performant loop","url":"https://github.com/ded/morpheus","size":"2.3 kB","ghwatchers":"511","ghforks":"57","xmlEncodedName":"Morpheus"},{"name":"microjungle","tags":["templating"],"description":"very simple and powerful client-side HTML via JSON templating engine.","url":"https://github.com/deepsweet/microjungle","size":"0.4 kB","ghwatchers":"87","ghforks":"7","xmlEncodedName":"microjungle"},{"name":"Soundbox","tags":["sound","audio","play","media"],"description":"A super simple JS library for playing sound effects","url":"https://github.com/sbrl/soundbox","size":"0.5 kB","ghwatchers":"13","ghforks":"0","xmlEncodedName":"Soundbox"},{"name":"Optiscroll","tags":["scroll","ui","event","touch","scrollbar"],"description":"Custom scrollbars for modern webapps. Supercharge the native scroll","url":"https://github.com/albertogasparin/Optiscroll","size":"3.8 kB","ghwatchers":"171","ghforks":"24","xmlEncodedName":"Optiscroll"},{"name":"Transe.js","tags":["scroll","transform","css","ui","creative","color","json","responsive"],"description":"Transformable scroll elements (with mobile support)","url":"https://github.com/yckart/Transe.js","size":"2.9 kB","ghwatchers":"28","ghforks":"12","xmlEncodedName":"Transe.js"},{"name":"CSSDyer.js","tags":["css","color","parse","ui","rgb","rgba","hex","creative"],"description":"Create your very own css-color","url":"https://github.com/yckart/CSSDyer.js","size":"0.5 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"CSSDyer.js"},{"name":"DragValue.js","tags":["ui","input","forms","drag"],"description":"Change values by dragging it","url":"https://github.com/yckart/DragValue.js","size":"0.7 kB","ghwatchers":"9","ghforks":"2","xmlEncodedName":"DragValue.js"},{"name":"topbar","tags":["ui","progress","bar","loading","side-wide"],"description":"Tiny and beautiful site-wide progress indicator","url":"http://buunguyen.github.io/topbar/","size":"1.1 kB","xmlEncodedName":"topbar"},{"name":"Curtain.js","tags":["curtain","scroll","transform","position","css","responsive","creative"],"description":"Scrolls up your curtain!","url":"https://github.com/yckart/Curtain.js","ghwatchers":"20","ghforks":"2","size":"0.4 kB","xmlEncodedName":"Curtain.js"},{"name":"HTMLparser","tags":["html","dom","manipulation","json","parser","htmlparser"],"description":"It parses HTML ¯\\_(ツ)_/¯","url":"https://github.com/ogewan/HTMLparser","ghwatchers":"6","ghforks":"4","size":"0.7 kB","xmlEncodedName":"HTMLparser"},{"name":"imageMaps.js","tags":["responsive","image","usemap","imagemap","map","area"],"description":"Responsive image maps to all browsers","url":"https://github.com/yckart/imageMaps.js","ghwatchers":"4","ghforks":"0","size":"0.4 kB","xmlEncodedName":"imageMaps.js"},{"name":"rounding.js","tags":["numeric","algorithm"],"description":"Exact rounding with a choice of rounding algorithms","url":"https://github.com/top-quark/rounding.js","size":"1.1 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"rounding.js"},{"name":"extnd","tags":["class","inheritance","multiple","super","extend"],"description":"Class system with clean implementation and multiple inheritance","url":"https://github.com/DominicTobias/extnd","size":"0.5 kB","ghwatchers":"13","ghforks":"5","xmlEncodedName":"extnd"},{"name":"Janis","tags":["animation","ui","transitions"],"description":"A simple CSS Transitions animation framework","url":"http://mikemctiernan.github.io/Janis/","size":"1.4 kB","xmlEncodedName":"Janis"},{"name":"System.js","tags":["feature"],"description":"Generates a JavaScript object with the user's system information.","url":"https://github.com/mrdoob/system.js","ghwatchers":"189","ghforks":"32","size":"0.6 kB","xmlEncodedName":"System.js"},{"name":"Platform.js","tags":["feature"],"description":"A platform detection library that works on nearly all JavaScript platforms.","url":"https://github.com/bestiejs/platform.js","size":"5.6 kB","ghwatchers":"2,010","ghforks":"247","xmlEncodedName":"Platform.js"},{"name":"Hypher","tags":["hyphenation"],"description":"Fast and small hyphenation engine for Node.js and the browser","url":"https://github.com/bramstein/Hypher","ghwatchers":"477","ghforks":"51","size":"1.6 kB","xmlEncodedName":"Hypher"},{"name":"Speedball","tags":["di","ioc","dependency injection","inversion of control"],"description":"A flexible dependency injection library","url":"https://github.com/cameron-martin/speedball","ghwatchers":"5","ghforks":"1","size":"1 kB","xmlEncodedName":"Speedball"},{"name":"micro-selector","tags":["css"],"description":"A micro, super fast, scope limited, javascript selector engine to be used anywhere","url":"https://github.com/fabiomcosta/micro-selector","size":"0.7 kB","ghwatchers":"57","ghforks":"7","xmlEncodedName":"micro-selector"},{"name":"Obscura","tags":["canvas","image","manipulation"],"description":"Canvas based image manipulation library","url":"https://github.com/OiNutter/Obscura","size":"1.5 kB","ghwatchers":"65","ghforks":"6","xmlEncodedName":"Obscura"},{"name":"imgResize.js","tags":["canvas","image","manipulation","resize"],"description":"Resize images in a Canvas based on edge detection.","url":"https://github.com/SimonWaldherr/imgResize.js","size":"1.4 kB","ghwatchers":"20","ghforks":"3","xmlEncodedName":"imgResize.js"},{"name":"Include.js","tags":["loader"],"description":"A tiny and AMD javascript loader with nested dependencies.","url":"http://capmousse.github.io/include.js/","size":"1.3 kB","xmlEncodedName":"Include.js"},{"name":"asEvented","tags":["events","functional"],"description":"Micro event emitter which provides the observer pattern to JavaScript objects.","url":"https://github.com/mkuklis/asEvented","ghwatchers":"93","ghforks":"17","size":"0.5 kB","xmlEncodedName":"asEvented"},{"name":"Keymaster","tags":["events"],"description":"Define scoped keyboard shortcuts, including modifier keys.","url":"https://github.com/madrobby/keymaster","ghwatchers":"6,050","ghforks":"433","size":"1.5 kB","xmlEncodedName":"Keymaster"},{"name":"Date-Utils","tags":["date","polyfill"],"description":"Lightweight Date Polyfill with a lot of flexibility.","url":"https://github.com/JerrySievert/date-utils","ghwatchers":"362","ghforks":"60","size":"4.2 kB","xmlEncodedName":"Date-Utils"},{"name":"Morf","tags":["animation","jsanimation"],"description":"A JavaScript work-around for hardware accelerated CSS3 transitions with custom easing functions.","url":"https://github.com/joelambert/morf","ghwatchers":"504","ghforks":"56","size":"2.9 kB","xmlEncodedName":"Morf"},{"name":"youarei.js","tags":["client","server","util","parser","uri","url","query","parameters","queryparams"],"description":"URL parsing library with sane parameter handling","url":"https://github.com/purge/youarei.js","ghwatchers":"35","ghforks":"1","size":"1.4 kB","xmlEncodedName":"youarei.js"},{"name":"typogr.js","tags":["dom","data","css","text","ui","typography","hyphenation"],"description":"Provides ransformations to plain text for typographically-improved HTML.","url":"https://github.com/ekalinin/typogr.js","ghwatchers":"261","ghforks":"21","size":"1.9 kB","xmlEncodedName":"typogr.js"},{"name":"jundo","tags":["undo","redo","history"],"description":"Undo library for browser and Node","url":"https://github.com/buunguyen/jundo","ghwatchers":"6","ghforks":"1","size":"0.4 kB","xmlEncodedName":"jundo"},{"name":"Maddy","tags":["functional","language","data"],"description":"A functional object operations library.","url":"http://bestiejs.github.io/maddy","ghwatchers":"62","ghforks":"4","size":"2.3 kB","xmlEncodedName":"Maddy"},{"name":"wru","tags":["testing"],"description":"essential unit test framework compatible with browsers, node.js, and Rhino","url":"https://github.com/WebReflection/wru","size":"1.5 kB","ghwatchers":"96","ghforks":"6","xmlEncodedName":"wru"},{"name":"Unlimit","tags":["functional","language"],"description":"Allows for chaining with native JavaScript objects without extending objects' prototypes.","url":"http://limeblack.github.io/UnlimitJS/","size":"0.4 kB","xmlEncodedName":"Unlimit"},{"name":"audio-fx","tags":["audio","games"],"description":"A HTML5 Audio Library","url":"https://github.com/jakesgordon/javascript-audio-fx","ghwatchers":"102","ghforks":"25","size":"0.6 kB","xmlEncodedName":"audio-fx"},{"name":"swipe","tags":["jsanimation","mobile"],"description":"A lightweight 1-to-1 mobile slider. Optimized for touch devices.","url":"https://github.com/thebird/Swipe","ghwatchers":"6,677","ghforks":"1,816","size":"1.9 kB","xmlEncodedName":"swipe"},{"name":"Happen","tags":["events"],"description":"General purpose event triggering","url":"https://github.com/tmcw/happen","size":"0.8 kB","ghwatchers":"102","ghforks":"14","xmlEncodedName":"Happen"},{"name":"zest","tags":["css","selector","dom"],"description":"An absurdly fast selector engine. Supports CSS3/CSS4 selectors - faster than Sizzle.","url":"https://github.com/chjj/zest","ghwatchers":"232","ghforks":"14","size":"3.5 kB","xmlEncodedName":"zest"},{"name":"Peppermint","tags":["mobile","slider","touch","carousel","slideshow"],"description":"Yet another touch slider. Fast, lightweight, extensible, works on everything.","url":"https://github.com/wilddeer/Peppermint","size":"2.7 kB","ghwatchers":"188","ghforks":"26","xmlEncodedName":"Peppermint"},{"name":"BabelBox","tags":["i18n","translation","multilingual","language","internationalization","amd"],"description":"i18n library that allows users to easily support multiple languages and requirejs support","url":"http://javascript-kurse-berlin.de/labs/babelbox.html","size":"1.1 kB","xmlEncodedName":"BabelBox"},{"name":"hsi.js","tags":["color"],"description":"A small RGB <-> HSI converter.","url":"https://github.com/e-/hsi.js","ghwatchers":"9","ghforks":"4","size":"0.5 kB","xmlEncodedName":"hsi.js"},{"name":"jacks","tags":["ajax","xhr","rest","fluent","XMLHttpRequest"],"description":"Fluent, extensible, easy-to-use ajax Framework.","url":"http://jccazeaux.github.io/jacks/","ghwatchers":"2","ghforks":"0","size":"1.8 kB","xmlEncodedName":"jacks"},{"name":"colorspaces.js","tags":["color"],"description":"Convert between RGB and several CIE color spaces for smarter color manipulation.","url":"http://boronine.github.io/colorspaces.js","size":"1.6 kB","xmlEncodedName":"colorspaces.js"},{"name":"tinyOSF.js","tags":["osf","markup","parser","html","shownotes","mp4chaps","podcast"],"description":"a few lines of code to convert OSF to HTML.","url":"https://github.com/simonwaldherr/tinyOSF.js","ghwatchers":"3","ghforks":"0","size":"3.1 kB","xmlEncodedName":"tinyOSF.js"},{"name":"crel","tags":["DOM"],"description":"A simple and fast DOM creation utility","url":"https://github.com/KoryNunn/crel","size":"0.6 kB","ghwatchers":"302","ghforks":"36","xmlEncodedName":"crel"},{"name":"mathmethods","tags":["math","language","sugar"],"description":"Give `Number.prototype` the `Math` methods it deserves.","url":"https://github.com/davidchambers/mathmethods","size":"0.5 kB","ghwatchers":"15","ghforks":"4","xmlEncodedName":"mathmethods"},{"name":"uuid-v4.js","tags":["random","uuid","data","browser","commonjs","node"],"description":"RFC-4122 Compliant Random (v4) UUID Generator","url":"https://github.com/makeable/uuid-v4.js","size":"0.2 kB","ghwatchers":"61","ghforks":"6","xmlEncodedName":"uuid-v4.js"},{"name":"notificon.js","tags":["notification","alert","browser","canvas","tab"],"description":"Dynamic tab favicon notifications/alerts","url":"https://github.com/makeable/Notificon","size":"0.9 kB","ghwatchers":"938","ghforks":"41","xmlEncodedName":"notificon.js"},{"name":"Traversty","tags":["dom"],"description":"Headache-free DOM collection management and traversal with an API inspired by both jQuery and Prototype","url":"https://github.com/rvagg/traversty","size":"2 kB","ghwatchers":"143","ghforks":"18","xmlEncodedName":"Traversty"},{"name":"mini-signals","tags":["events","signals","fast"],"description":"signals, in JavaScript, fast","url":"https://github.com/Hypercubed/mini-signals","size":"1.1 kB","ghwatchers":"78","ghforks":"7","xmlEncodedName":"mini-signals"},{"name":"html5tooltips.js","tags":["ui","tooltips","hints","html5","css3","animation"],"description":"Light and clean tooltips with CSS3 animation","url":"http://ytiurin.github.io/html5tooltipsjs/","size":"3.4 kB","ghwatchers":"803","ghforks":"79","xmlEncodedName":"html5tooltips.js"},{"name":"SpeculOOs","tags":["language","class"],"description":"Simple JavaScript Class notation, fully CoffeeScript compliant","url":"https://github.com/k33g/speculoos","size":"0.3 kB","ghwatchers":"14","ghforks":"2","xmlEncodedName":"SpeculOOs"},{"name":"aug","tags":["extend","augment"],"description":"A object extend utility","url":"https://github.com/firstandthird/aug","size":"0.3 kB","ghwatchers":"17","ghforks":"5","xmlEncodedName":"aug"},{"name":"path.js","tags":["route"],"description":"Simple, lightweight routing for web browsers","url":"http://mtrpcic.github.io/pathjs/","size":"1.1 kB","xmlEncodedName":"path.js"},{"name":"scaleApp.js","tags":["spa","base","events","node","pubsub","async","flow","flow control"],"description":"scaleApp is a tiny JavaScript framework for scalable one-page-applications","url":"http://scaleapp.org/","size":"3.1 kB","ghwatchers":"348","ghforks":"51","xmlEncodedName":"scaleApp.js"},{"name":"Choona.js","tags":["pubsub","modular","scalable","sandbox","spa","architecture"],"description":"Choona.js is a tiny JavaScript framework for scalable , modular architecture for one-page-applications","url":"https://github.com/nsisodiya/choona.js","size":"2.8 kB","ghwatchers":"13","ghforks":"5","xmlEncodedName":"Choona.js"},{"name":"Impetus.js","tags":["momentum","touch","mouse","mobile"],"description":"Add momentum to anything. It's like iScroll, except not for scrolling. Supports mouse and touch events.","url":"http://chrisbateman.github.io/impetus","size":"1.6 kB","ghwatchers":"254","ghforks":"48","xmlEncodedName":"Impetus.js"},{"name":"seedrandom.js","tags":["random","RNG","PRNG"],"description":"A seeded random number generator. Can override Math.random or return a generator function.","url":"https://github.com/davidbau/seedrandom","size":"0.9 kB","ghwatchers":"893","ghforks":"78","xmlEncodedName":"seedrandom.js"},{"name":"Humane JS","tags":["notification","alert"],"description":"A simple, modern, browser notification system","url":"http://wavded.github.io/humane-js/","size":"1.5 kB","xmlEncodedName":"Humane JS"},{"name":"Web Worker Proxies","tags":["web","worker","proxies","rpc","remote","procedure","call"],"description":"Tiny implementation of RPC-style interfaces for web workers.","url":"https://github.com/omphalos/web-worker-proxies","size":"0.4 kB","ghwatchers":"12","ghforks":"2","xmlEncodedName":"Web Worker Proxies"},{"name":"JSFace","tags":["oop","language","commonjs","node","class"],"description":"Small, fast, elegant, powerful, and cross platform OOP library. Support singleton, super call, private, mixins, plugins, AOP and more.","url":"https://github.com/tnhu/jsface","ghwatchers":"300","ghforks":"42","size":"1.1 kB","xmlEncodedName":"JSFace"},{"name":"Radio.js","tags":["events","pubsub"],"description":"Chainable publish/subscribe framework","url":"http://radio.uxder.com","size":"0.5 kB","xmlEncodedName":"Radio.js"},{"name":"keyvent.js","tags":["dom","events","amd"],"description":"Keyboard events simulator.","url":"https://github.com/gtramontina/keyvent.js","size":"0.6 kB","ghwatchers":"42","ghforks":"9","xmlEncodedName":"keyvent.js"},{"name":"draggable.js","tags":["dom","css","css3","amd"],"description":"Make your dom elements draggable easily.","url":"http://gtramontina.github.io/draggable.js/","size":"1.1 kB","xmlEncodedName":"draggable.js"},{"name":"T-Lite","tags":["templating"],"description":"A lite but powerfull javascript template engine","url":"https://github.com/CapMousse/T-Lite","size":"0.5 kB","ghwatchers":"21","ghforks":"5","xmlEncodedName":"T-Lite"},{"name":"Callbacks.js","tags":["events","dispatcher","static","callbacks"],"url":"https://github.com/dperrymorrow/callbacks.js","description":"Event dispatching, can be used either as static or instance based.","ghwatchers":"21","ghforks":"5","size":"0.3 kB","xmlEncodedName":"Callbacks.js"},{"name":"crate.js","tags":["modal","popover"],"description":"A modal creation library with a multitude of configuration options. Customizable html, colors, closable actions, on open and/or on closing functions, or just give it a body!","url":"https://github.com/Galavantier/crate.js","size":"1.4 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"crate.js"},{"name":"ancestry.js","tags":["class","extend","commonjs","amd"],"description":"Simple, yet powerful inheritance library to make polymorphism and super-constructors work propertly.","url":"https://github.com/jasonwyatt/ancestry.js","ghwatchers":"15","ghforks":"0","size":"0.4 kB","xmlEncodedName":"ancestry.js"},{"name":"Telegraph","tags":["events"],"description":"A very minimal event emitter for browsers, forked from Benjamin Thomas' smokesignals.js, that allows for cancelable events","url":"https://github.com/dubrowgn/telegraph","ghwatchers":"10","ghforks":"1","size":"0.3 kB","xmlEncodedName":"Telegraph"},{"name":"List.js","tags":["list","extend","templating","utils","sort","search","filter"],"description":"Add search, sort and flexibility to plain HTML lists (div, ul, table, everything!).","url":"http://listjs.com","size":"5.9 kB","xmlEncodedName":"List.js"},{"name":"ppo","tags":["utils","tool","util"],"description":"ppo is a super small and useful utils library for JavaScript ","url":"https://a-jie.github.io/ppo/","size":"3 kB","xmlEncodedName":"ppo"},{"name":"Mediator.js","tags":["utils","pubsub","notifications","events","async","callbacks"],"description":"Flexible pubsub-ish framework for handling namespaced events.","url":"http://www.thejacklawson.com/Mediator.js","size":"1.3 kB","xmlEncodedName":"Mediator.js"},{"name":"doT.js","tags":["nodejs","browsers","templating","partials","custom delimiters"],"description":"The fastest + concise javascript template engine for nodejs and browsers. Partials, custom delimiters and more.","url":"https://github.com/olado/doT","size":"1.5 kB","ghwatchers":"3,905","ghforks":"869","xmlEncodedName":"doT.js"},{"name":"Stapes.js","tags":["mvc","class","events","mobile"],"description":"A (really) tiny Javascript MVC microframework. Perfect for mobile.","url":"http://hay.github.io/stapes/","size":"2.1 kB","xmlEncodedName":"Stapes.js"},{"name":"Smoke Signals","tags":["events"],"description":"Really, really lightweight event emitting","url":"https://bitbucket.org/bentomas/smokesignals.js","size":"0.2 kB","xmlEncodedName":"Smoke Signals"},{"name":"CSSClass","tags":["css"],"description":"Adds the functions .hasClass, .addClass, .removeClass and .toggleClass to the Element prototype.","url":"https://github.com/EarMaster/CSSClass","size":"0.5 kB","ghwatchers":"82","ghforks":"12","xmlEncodedName":"CSSClass"},{"name":"Jwerty","tags":["events"],"description":"Bind, fire and assert on keyboard events, with easy to use keyboard selector combos","url":"https://github.com/keithamus/jwerty","size":"1.8 kB","ghwatchers":"1,217","ghforks":"112","xmlEncodedName":"Jwerty"},{"name":"konami.js","tags":["events","input","bind","keypress","hotkeys","keyboard","shortcuts"],"description":"logs every keypress and store it for later","url":"https://github.com/SimonWaldherr/konami.js","ghwatchers":"34","ghforks":"3","size":"0.8 kB","xmlEncodedName":"konami.js"},{"name":"filesize.js","tags":["math","language","amd"],"description":"JavaScript library to generate a human readable String describing the filesize","url":"http://filesizejs.com","size":"0.9 kB","xmlEncodedName":"filesize.js"},{"name":"csv.js","tags":["csv","json","array","object","encode","transform"],"description":"Convert JSON, Arrays or Objects to CSV","url":"https://github.com/avoidwork/csv.js","ghwatchers":"57","ghforks":"9","size":"1 kB","xmlEncodedName":"csv.js"},{"name":"tiny-lru.js","tags":["LRU","cache"],"description":"Least Recently Used cache","url":"https://github.com/avoidwork/tiny-lru","size":"1.2 kB","ghwatchers":"25","ghforks":"2","xmlEncodedName":"tiny-lru.js"},{"name":"JSON 3","tags":["polyfill","json","amd"],"description":"A modern JSON implementation compatible with nearly all JavaScript platforms.","url":"http://bestiejs.github.io/json3","ghwatchers":"991","ghforks":"146","size":"3.3 kB","xmlEncodedName":"JSON 3"},{"name":"promise.js","tags":["async","promise","future","deffered","ajax"],"description":"Lightweight promises (or futures, or deffered). Includes AJAX REST functions.","url":"https://github.com/stackp/promisejs","size":"1 kB","ghwatchers":"439","ghforks":"126","xmlEncodedName":"promise.js"},{"name":"cookie.js","tags":["cookie.js","cookies","storage"],"description":"A small library that makes setting, getting and removing cookies really easy.","url":"https://github.com/florian/cookie.js","size":"1 kB","ghwatchers":"1,033","ghforks":"169","xmlEncodedName":"cookie.js"},{"name":"Ordering.js","tags":["sort","sorting","ordering","arrays"],"description":"Helper to build sorting functions for array.sort()","url":"https://github.com/bbaliguet/ordering","size":"0.4 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"Ordering.js"},{"name":"Byda.js","tags":["HTML5","imports","xhr","ajax","swapping"],"description":"HTML content swapping via HTML5 imports or XHR (Ajax).","url":"http://www.ericmcd.com/byda/","size":"1.7 kB","xmlEncodedName":"Byda.js"},{"name":"an.hour.ago","tags":["dates","times","language","sugar"],"description":"DSL for expressing and comparing dates and times","url":"https://github.com/davidchambers/an.hour.ago","size":"0.6 kB","ghwatchers":"71","ghforks":"5","xmlEncodedName":"an.hour.ago"},{"name":"JSDeferred","tags":["defered","asynchronous","callbacks"],"description":"Standalone and Compact asynchronous library in JavaScript.","url":"http://cho45.stfuawsc.com/jsdeferred/","size":"1.9 kB","xmlEncodedName":"JSDeferred"},{"name":"Riloadr","tags":["image","images","responsive","loader"],"description":"A cross-browser framework-independent responsive images loader. jQuery version available.","url":"https://github.com/tubalmartin/riloadr","size":"3.1 kB","ghwatchers":"680","ghforks":"42","xmlEncodedName":"Riloadr"},{"name":"Plates","tags":["templating"],"description":"Plates (short for templates) binds data to markup. Plates has NO special syntax. It works in the browser and in Node.js.","url":"https://github.com/flatiron/plates","size":"2.3 kB","ghwatchers":"816","ghforks":"65","xmlEncodedName":"Plates"},{"name":"Nonsense","tags":["data"],"description":"Generate repeatable random data","url":"https://github.com/jocafa/Nonsense","size":"3.7 kB","ghwatchers":"168","ghforks":"14","xmlEncodedName":"Nonsense"},{"name":"Dijon","tags":["IOC","dependency injection"],"description":"An IOC/DI framework in Javascript, inspired by Robotlegs and Swiftsuspenders","url":"https://github.com/creynders/dijon","size":"1 kB","ghwatchers":"72","ghforks":"6","xmlEncodedName":"Dijon"},{"name":"ua.js","tags":["feature"],"description":"A very small user-agent (browser) and device detection library.","url":"https://github.com/g13n/ua.js","ghwatchers":"87","ghforks":"20","size":"0.5 kB","xmlEncodedName":"ua.js"},{"name":"microtext.js","tags":["text utility"],"description":"A JavaScript utility for processing text.","url":"https://github.com/rodrigoalvesvieira/microtext.js/","size":"0.8 kB","ghwatchers":"57","ghforks":"6","xmlEncodedName":"microtext.js"},{"name":"lostorage.js","tags":["storage","localStorage","sessionStorage"],"description":"Client-side storage the way it should be - using the HTML5 localStorage API. lostorage.js allows you to save any kind of data.","url":"https://github.com/florian/xStore","size":"0.8 kB","ghwatchers":"230","ghforks":"37","xmlEncodedName":"lostorage.js"},{"name":"guggenheim.js","tags":["gallery","plugin","animation"],"description":"A framework agnostic, animated, gallery plugin","url":"https://github.com/OiNutter/guggenheim.js","size":"3.4 kB","ghwatchers":"91","ghforks":"18","xmlEncodedName":"guggenheim.js"},{"name":"jvent.js","tags":["events"],"description":"Event Emitter Class for the browser based on NodeJS EventEmitter","url":"https://github.com/pazguille/jvent","size":"0.5 kB","ghwatchers":"49","ghforks":"10","xmlEncodedName":"jvent.js"},{"name":"fader.js","url":"http://lukelex.github.io/fader.js/","tags":["animation"],"description":"A micro library to fade elements in and out.","size":"0.6 kB","ghwatchers":"17","ghforks":"9","xmlEncodedName":"fader.js"},{"name":"TemporizedSlider.js","url":"http://lukelex.github.io/TemporizedSlider.js","tags":["animation","events"],"description":"A micro library that implements a customizable temporized image slider, with custom text and title for each one.","size":"1.3 kB","ghwatchers":"8","ghforks":"3","xmlEncodedName":"TemporizedSlider.js"},{"name":"pubsub.js","tags":["events","pubsub","publish","subscribe","node","rhino","amd","commonjs","titanium"],"description":"A tiny, optimized, tested, standalone and robust pubsub implementation supporting different javascript environments","url":"https://github.com/federico-lox/pubsub.js","size":"0.4 kB","ghwatchers":"112","ghforks":"16","xmlEncodedName":"pubsub.js"},{"name":"pastafarian","tags":["statemachine","state","fsm","event","finite","state","machine"],"description":"A tiny event emitter-based finite state machine","url":"https://github.com/orbitbot/pastafarian","size":"0.5 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"pastafarian"},{"name":"Pjs","url":"https://github.com/jneen/pjs","tags":["class","inheritance"],"description":"A teensy class system. It's just prototypes, but without the nasty parts.","size":"0.3 kB","ghwatchers":"188","ghforks":"30","xmlEncodedName":"Pjs"},{"name":"l.js","tags":["loader"],"description":"Another Tiny js/css loader supporting aliases, ordered and parallel loading, callbacks ... ","url":"http://malko.github.io/l.js/","size":"0.9 kB","xmlEncodedName":"l.js"},{"name":"D.js","tags":["Promises","async","promises/A+"],"description":"A tiny implementation of the Promises/A+ spec for Node.js and the browser, with some extensions to the spec ","url":"http://malko.github.io/D.js/","size":"1.5 kB","xmlEncodedName":"D.js"},{"name":"Mousetrap","tags":["events"],"description":"A simple library for handling keyboard shortcuts in Javascript.","url":"http://craig.is/killing/mice","size":"2.2 kB","ghwatchers":"8,857","ghforks":"791","xmlEncodedName":"Mousetrap"},{"name":"Driftwood","tags":["logging","error","exception","log"],"description":"A simple library for logging and exception tracking in Javascript.","url":"https://github.com/mattkanwisher/driftwood.js","size":"4.1 kB","ghwatchers":"23","ghforks":"7","xmlEncodedName":"Driftwood"},{"name":"progress.js","tags":["progress","bar","progressbar"],"description":"A (animated) javascript progress bar without dependencies.","url":"https://github.com/mdix/progress.js","size":"0.6 kB","ghwatchers":"41","ghforks":"7","xmlEncodedName":"progress.js"},{"name":"shotgun.js","tags":["shotgun","events","error","observer","pubsub","publish","subscribe","node","unsubscribe"],"description":"Nestable custom events, trappable internal events, functional try/catch abstraction, unsubscribable unnamed functions.","url":"http://github.com/jgnewman/shotgun","size":"1.2 kB","ghwatchers":"25","ghforks":"7","xmlEncodedName":"shotgun.js"},{"name":"onDomReady","tags":["dom","event","ready","load"],"description":"Initialize your code when the DOM is ready. Based on jQuery's ready() method. AMD compatible.","url":"https://github.com/tubalmartin/ondomready","size":"0.5 kB","ghwatchers":"88","ghforks":"7","xmlEncodedName":"onDomReady"},{"name":"t.js","tags":["templating"],"description":"A tiny javascript templating framework in ~400 bytes gzipped.","url":"https://github.com/jasonmoo/t.js","size":"0.4 kB","ghwatchers":"779","ghforks":"85","xmlEncodedName":"t.js"},{"name":"displace.js","tags":["move","dom","drag","tiny","mouse","touch"],"description":"Minimal javascript library for creating movable DOM elements","url":"https://catc.github.io/displace","size":"1.4 kB","ghwatchers":"38","ghforks":"6","xmlEncodedName":"displace.js"},{"name":"statelet","tags":["events"],"description":"Little state objects","url":"https://github.com/joshwnj/statelet","size":"0.5 kB","ghwatchers":"27","ghforks":"4","xmlEncodedName":"statelet"},{"name":"Eev","tags":["emitter","events","event","listener","pubsub","trigger","observe"],"description":"A tiny, fast, zero-dependency event emitter (~500 bytes min + gzip)","url":"https://github.com/chrisdavies/eev","size":"0.5 kB","ghwatchers":"181","ghforks":"14","xmlEncodedName":"Eev"},{"name":"tiptext.js","tags":["ui","hints","html5","css3","animation","mutation observers","pretty","dom","tool tip","tooltip","tooltips","tool tips","floating tooltip","floating tool tips"],"description":"A floating tooltip function, using mutation observers. Has 6 customizable callbacks!","url":"https://github.com/agamemnus/tiptext.js","ghwatchers":"5","ghforks":"0","size":"2.1 kB","xmlEncodedName":"tiptext.js"},{"name":"guardian.js","tags":["testing","tdd","unit","bdd"],"description":"Unopinionated JavaScript (unit/integration/whatever) testing library","url":"https://github.com/guardianjs/guardianjs","size":"0.4 kB","ghwatchers":"18","ghforks":"0","xmlEncodedName":"guardian.js"},{"name":"delayed","tags":["async","timer","defer","events"],"description":"A collection of helper functions for your functions, using `setTimeout()` to delay and defer.","url":"https://github.com/rvagg/delayed","size":"0.4 kB","ghwatchers":"23","ghforks":"2","xmlEncodedName":"delayed"},{"name":"BigScreen","tags":["browser","canvas"],"description":"BigScreen is a simple library for using the JavaScript Full Screen API.","url":"http://brad.is/coding/BigScreen/","size":"1.6 kB","ghwatchers":"703","ghforks":"79","xmlEncodedName":"BigScreen"},{"name":"SwipeMe","tags":["swipe","menu","navigation","off-canvas","off","canvas"],"description":"A lightweight Javascript library for swiping open/close off-canvas menus.","url":"http://kinglozzer.github.io/SwipeMe/demo/index.html","size":"0.8 kB","ghwatchers":"39","ghforks":"14","xmlEncodedName":"SwipeMe"},{"name":"emitonoff","tags":["pubsub","event"],"description":"Extremely simple event emitter for javascript","url":"https://github.com/konsumer/emitonoff","size":"0.3 kB","ghwatchers":"29","ghforks":"3","xmlEncodedName":"emitonoff"},{"name":"Airwaves","tags":["pubsub","publish","subscribe","broadcast","message"],"description":"Lightweight pub/sub for any JavaScript environment","url":"https://github.com/davidchambers/airwaves","size":"0.8 kB","ghwatchers":"25","ghforks":"0","xmlEncodedName":"Airwaves"},{"name":"Stately.js","tags":["automata","finite","fsm","machine","state"],"description":"Stately.js is a JavaScript based finite-state machine (FSM) engine for Node.js and the browser.","url":"https://github.com/fschaefer/Stately.js","size":"0.9 kB","ghwatchers":"712","ghforks":"77","xmlEncodedName":"Stately.js"},{"name":"pods.js","tags":["module","ioc","di","injection","dependency","framework"],"description":"A tiny synchronous module definition and dependency management framework.","url":"https://github.com/gmac/pods.js","size":"0.5 kB","ghwatchers":"20","ghforks":"5","xmlEncodedName":"pods.js"},{"name":"Timer.js","tags":["interval","timeout","timer","periodic"],"description":"Timer.js is a periodic timer for Node.js and the browser.","url":"https://github.com/fschaefer/Timer.js","size":"0.8 kB","ghwatchers":"133","ghforks":"20","xmlEncodedName":"Timer.js"},{"name":"Lambda-30","tags":["lambda","function","expression","anonymous","literal","functional"],"description":"A Lambda String implementation for Node.js that supports some ES6 (...rest, ()=>{}, ()=>retval) and a built in JSON encoder.","url":"https://github.com/jdarling/lambda-30","size":"0.9 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"Lambda-30"},{"name":"xxspubsub.js","tags":["pubsub"],"description":"Extra-extra-small publish/subscribe micro-library in JavaScript","url":"https://github.com/dciccale/xxspubsub","size":"0.2 kB","ghwatchers":"23","ghforks":"6","xmlEncodedName":"xxspubsub.js"},{"name":"big.js","tags":["big","number","bignumber","bigdecimal","biginteger","arbitrary","precision","decimal","arithmetic","math"],"description":"A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.","url":"https://github.com/MikeMcl/big.js/","size":"2.7 kB","ghwatchers":"1,567","ghforks":"170","xmlEncodedName":"big.js"},{"name":"PicoModal","tags":["modal","popup","message"],"description":"A self-contained modal popup library","url":"https://github.com/Nycto/PicoModal","size":"2.1 kB","ghwatchers":"201","ghforks":"32","xmlEncodedName":"PicoModal"},{"name":"microphone","tags":["html5","audio","microphone","signalprocessing","dsp","mic","sound"],"description":"Process live audio input in the browser","url":"https://github.com/srubin/microphone","ghwatchers":"10","ghforks":"2","size":"0.9 kB","xmlEncodedName":"microphone"},{"name":"time.js","tags":["time","parse","parsing","format","validate"],"description":"Date-agnostic time parsing for node and the browser.","url":"https://github.com/zackdever/time","size":"0.9 kB","ghwatchers":"42","ghforks":"7","xmlEncodedName":"time.js"},{"name":"MissMatch","tags":["pattern","matching","functional","object","json","query","decompose"],"description":"Pattern matching (like in Haskell or Scala) for JavaScript.","url":"https://github.com/pb82/MissMatch","size":"2.2 kB","ghwatchers":"60","ghforks":"2","xmlEncodedName":"MissMatch"},{"name":"Sleeper Agent","tags":["logging","logs"],"description":"Collect logs selectively from client instances on demand.","url":"https://github.com/kapilkaisare/sleeper-agent","size":"0.3 kB","ghwatchers":"8","ghforks":"0","xmlEncodedName":"Sleeper Agent"},{"name":"Daemonize","tags":["unix","daemon"],"description":"Give a function a daemon like interface (start, stop, restart)","url":"https://github.com/kapilkaisare/daemonizejs","size":"0.4 kB","ghwatchers":"9","ghforks":"3","xmlEncodedName":"Daemonize"},{"name":"switcher","tags":["switch","regexp"],"description":"Function to provide a similar syntax to a switch statement but with regex as cases.","url":"https://github.com/EarMaster/switcher","size":"0.3 kB","ghwatchers":"19","ghforks":"3","xmlEncodedName":"switcher"},{"name":"ajax","tags":["ajax","jquery"],"description":"Standalone AJAX library inspired by jQuery/zepto","url":"https://github.com/ForbesLindesay/ajax","size":"2 kB","ghwatchers":"333","ghforks":"185","xmlEncodedName":"ajax"},{"name":"page.js","tags":["page","page.js","router","routing","express","spa"],"description":"Tiny ~1200 byte Express-inspired client-side router.","url":"https://github.com/visionmedia/page.js","size":"3.4 kB","ghwatchers":"5,855","ghforks":"613","xmlEncodedName":"page.js"},{"name":"parsy","tags":["nodejs","options","parser"],"description":"Tiny command line options parser for node.js in CoffeeScript","url":"https://github.com/dciccale/parsy","size":"0.3 kB","ghwatchers":"15","ghforks":"0","xmlEncodedName":"parsy"},{"name":"Talker.js","tags":["events","window.postMessage","iframe","promise","communication","message"],"description":"Simple event delegation library","url":"https://github.com/secondstreet/talker.js","size":"1.2 kB","ghwatchers":"27","ghforks":"8","xmlEncodedName":"Talker.js"},{"name":"Gator","tags":["dom","events","delegation"],"description":"Simple event delegation library","url":"http://craig.is/riding/gators","size":"0.9 kB","ghwatchers":"483","ghforks":"39","xmlEncodedName":"Gator"},{"name":"keymage","tags":["events"],"description":"Keyboard shortcuts handling with support for key sequences.","url":"https://github.com/piranha/keymage","size":"1.6 kB","ghwatchers":"291","ghforks":"29","xmlEncodedName":"keymage"},{"name":"Chic","tags":["class","classes","extend","inheritance","oop","prototypal","prototype"],"description":"Chic is an extremely simple class-like interface to JavaScript prototypal inheritance.","url":"https://github.com/rowanmanning/chic","size":"0.4 kB","ghwatchers":"27","ghforks":"7","xmlEncodedName":"Chic"},{"name":"Perms","tags":["permissions","perms","ls","chmod","unix"],"description":"Convert Unix style permissions to strings like ls (0755 => 'rwxr-xr-x')","url":"https://github.com/bahamas10/node-perms","size":"0.3 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"Perms"},{"name":"range.js","tags":["range"],"description":"JavaScript's missing range function.","url":"https://github.com/florian/range.js","size":"0.5 kB","ghwatchers":"82","ghforks":"2","xmlEncodedName":"range.js"},{"name":"Strukt","tags":["utilities"],"description":"Ruby inspired Structs for JavaScript.","url":"https://github.com/florian/Strukt","size":"0.3 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"Strukt"},{"name":"ipsum.js","tags":["content","text","helper","tool","developer tool"],"description":"Increases / decreases text quantity inside inline elements by pressing keys to check if the design can cope with different text length.","url":"https://github.com/mdix/ipsum.js","size":"1.6 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"ipsum.js"},{"name":"TimeJump","tags":["audio","video","podcast","player"],"description":"TimeJump adds deep-linking to HTML5 audio and video podcasts.","url":"https://github.com/davatron5000/TimeJump","size":"0.5 kB","ghwatchers":"331","ghforks":"32","xmlEncodedName":"TimeJump"},{"name":"preloadimages.js","tags":["preload","images","asset"],"description":"Preload images and callback when they are all ready","url":"https://github.com/bahamas10/preloadimages.js","size":"0.2 kB","ghwatchers":"40","ghforks":"5","xmlEncodedName":"preloadimages.js"},{"name":"Behave.js","tags":["ide","text","editor","behave","behaviors","code","ace","codemirror"],"description":"A lightweight, cross browser library for adding IDE style behaviors to plain text areas","url":"https://github.com/jakiestfu/Behave.js","size":"2.6 kB","ghwatchers":"1,704","ghforks":"108","xmlEncodedName":"Behave.js"},{"name":"Snap.js","tags":["snap","droor","drawer","shelf","mobile","ios","reveal","slide","drag","pane","back","panel","side","menu"],"description":"A Library for creating beautiful mobile shelfs in Javascript","url":"https://github.com/jakiestfu/Snap.js","size":"2.7 kB","ghwatchers":"6,058","ghforks":"738","xmlEncodedName":"Snap.js"},{"name":"enquire.js","tags":["matchMedia","mediaquery","mediaqueries","css3","css"],"description":"Awesome Media Queries in JavaScript","url":"https://github.com/WickyNilliams/enquire.js","size":"1.2 kB","ghwatchers":"3,329","ghforks":"269","xmlEncodedName":"enquire.js"},{"name":"ki.js","tags":["dom","selectors","traversing","library"],"description":"A super-tiny jQuery-like JavaScript library","url":"https://github.com/dciccale/ki.js","size":"0.3 kB","ghwatchers":"206","ghforks":"28","xmlEncodedName":"ki.js"},{"name":"Anim","tags":["css","animation"],"description":"A bare bones animation library","url":"https://github.com/relay-zz/anim","size":"1.5 kB","ghwatchers":"68","ghforks":"21","xmlEncodedName":"Anim"},{"name":"Check.js","tags":["type checking","verification","utility","library"],"description":"A tiny library for type and sanity checking","url":"https://github.com/Morklympious/check.js","size":"1.4 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"Check.js"},{"name":"promiscuous","tags":["promise","deferred","functional","async","future"],"description":"A minimal and fast promise/deferred implementation, compatible with Promises/A+","url":"https://github.com/RubenVerborgh/promiscuous","size":"0.5 kB","ghwatchers":"178","ghforks":"23","xmlEncodedName":"promiscuous"},{"name":"Draggabilly","tags":["drag","dragable","draggable"],"description":"Make that shiz draggable","url":"https://github.com/desandro/draggabilly","size":"1.7 kB","ghwatchers":"3,178","ghforks":"373","xmlEncodedName":"Draggabilly"},{"name":"BehaviorTree.js","tags":["behavior trees","ai","behaviors","games","statemachine"],"description":"A JavaScript implementation of Behavior Trees, useful when developing AI behaviors in games.","url":"https://github.com/Calamari/BehaviorTree.js","size":"2 kB","ghwatchers":"160","ghforks":"20","xmlEncodedName":"BehaviorTree.js"},{"name":"PinkySwear.js","tags":["promises"],"description":"A tiny implementation of the Promises/A+ specification.","url":"https://github.com/timjansen/pinkyswear.js","ghwatchers":"87","ghforks":"11","size":"0.5 kB","xmlEncodedName":"PinkySwear.js"},{"name":"DCL.js","tags":["class","oop","aop","inheritance","object","compose"],"description":"An elegant OOP with mixins + AOP for JavaScript","url":"http://www.dcljs.org/","size":"3 kB","xmlEncodedName":"DCL.js"},{"name":"breakup.js","tags":["enumeration","setimmediate","enumerate","jquery","yield"],"description":"Yielding enumeration replacement functions for async.forEachSeries() and jQuery.each()","url":"https://github.com/nicjansma/breakup.js","size":"0.6 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"breakup.js"},{"name":"Barman","tags":["traits","oop","classes","objects","object composition"],"description":"A small library to brew JavaScript objects.","url":"https://github.com/dfernandez79/barman","ghwatchers":"16","ghforks":"1","size":"1.9 kB","xmlEncodedName":"Barman"},{"name":"smoothScroll.js","tags":["scroll","smooth"],"description":"A teeny tiny, ease-in-out, smooth scroll library with no dependency","url":"https://github.com/alicelieutier/smoothScroll","size":"0.7 kB","ghwatchers":"480","ghforks":"125","xmlEncodedName":"smoothScroll.js"},{"name":"strftime","tags":["strftime","format","date","time"],"description":"strftime for JavaScript. Works in Node and browsers.","url":"https://github.com/samsonjs/strftime","size":"3.3 kB","ghwatchers":"580","ghforks":"97","xmlEncodedName":"strftime"},{"name":"format","tags":["format","printf","sprintf","vsprintf","string"],"description":"printf, sprintf, and vsprintf for JavaScript. Works in Node and browsers.","url":"https://github.com/samsonjs/format","ghwatchers":"41","ghforks":"10","size":"0.6 kB","xmlEncodedName":"format"},{"name":"Proclaim","tags":["assert","test"],"description":"A simple assertion library for server and client side JavaScript.","url":"https://github.com/rowanmanning/proclaim","ghwatchers":"56","ghforks":"12","size":"1.8 kB","xmlEncodedName":"Proclaim"},{"name":"ColorConverter.js","tags":["color","color manipulation"],"description":"Convert between RGB, YUV, HSL, HSV, CMYK and HEX color defining with these JavaScript functions under MIT-License","url":"https://github.com/SimonWaldherr/ColorConverter.js","ghwatchers":"31","ghforks":"4","size":"1.6 kB","xmlEncodedName":"ColorConverter.js"},{"name":"PullToRefresh","tags":["webkit","mobile","scroll"],"description":"A dependency-free PullToRefresh implementation","url":"https://github.com/SimonWaldherr/PullToRefresh","size":"1.6 kB","ghwatchers":"57","ghforks":"11","xmlEncodedName":"PullToRefresh"},{"name":"infinity.js","tags":["ajax","scroll"],"description":"dependency-free infinite scrolling","url":"https://github.com/SimonWaldherr/infinity.js","ghwatchers":"41","ghforks":"3","size":"1.2 kB","xmlEncodedName":"infinity.js"},{"name":"Bespoke.js","tags":["presentation","slides","deck","css3"],"description":"DIY presentation micro-framework, harnessing the power of CSS3 transitions.","url":"https://github.com/bespokejs/bespoke","size":"0.8 kB","ghwatchers":"4,372","ghforks":"454","xmlEncodedName":"Bespoke.js"},{"name":"usertiming.js","tags":["usertiming","user timing","performance timeline","window.performance.now","mark","measure"],"description":"User Timing polyfill","url":"https://github.com/nicjansma/usertiming.js","size":"1.3 kB","ghwatchers":"170","ghforks":"21","xmlEncodedName":"usertiming.js"},{"name":"resourcetiming-compression.js","tags":["resourcetiming","compress"],"description":"ResourceTiming compression and decompression","url":"https://github.com/nicjansma/resourcetiming-compression.js","size":"3.1 kB","ghwatchers":"27","ghforks":"7","xmlEncodedName":"resourcetiming-compression.js"},{"name":"LogJS","tags":["logging","CORS","localStorage","DOM"],"description":"Lightweight, extendable JavaScript logging library.","url":"https://github.com/bfattori/LogJS","size":"0.8 kB","ghwatchers":"68","ghforks":"11","xmlEncodedName":"LogJS"},{"name":"StdClassJS","tags":["oop","class","extend","mixin"],"description":"A dead simple JavaScript inheritance implementation.","url":"https://github.com/ChrisAckerman/stdclassjs","size":"0.5 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"StdClassJS"},{"name":"keydrown","tags":["games"],"description":"A JavaScript key state handler for web apps","url":"https://github.com/jeremyckahn/keydrown","size":"1.2 kB","ghwatchers":"175","ghforks":"15","xmlEncodedName":"keydrown"},{"name":"vivi.js","tags":["animation","animate","css","css3","keyframe","defined"],"description":"Tiny wrapper for CSS Defined Animations (@keyframes).","url":"https://github.com/musictheory/vivi.js","size":"2.3 kB","ghwatchers":"32","ghforks":"2","xmlEncodedName":"vivi.js"},{"name":"salt.js","tags":["dom","selectors","traversing","library"],"description":"micro DOM selector library that maps queries to native get commands","url":"https://github.com/james2doyle/saltjs","size":"0.2 kB","ghwatchers":"129","ghforks":"14","xmlEncodedName":"salt.js"},{"name":"color.js","tags":["color","color manipulation"],"description":"API for immutable color objects in RGB, HSV and HSL with optional alpha. Comprehensive CSS format parsing and output.","url":"https://github.com/brehaut/color-js/","size":"4 kB","ghwatchers":"541","ghforks":"67","xmlEncodedName":"color.js"},{"name":"ScriptInclude","tags":["loader"],"description":"Simple includes in the browser.","url":"https://github.com/EvanHahn/ScriptInclude","size":"0.2 kB","ghwatchers":"41","ghforks":"5","xmlEncodedName":"ScriptInclude"},{"name":"cssanimevent","tags":["animation","css3","events","polyfill","transitions"],"description":"CSS3 animation and transition DOM event handler with a simple fallback pattern for unsupported browsers.","url":"https://github.com/magnetikonline/cssanimevent","size":"0.8 kB","ghwatchers":"88","ghforks":"9","xmlEncodedName":"cssanimevent"},{"name":"ClassJS","tags":["class","inheritance","namespace","node"],"description":"JavaScript classical inheritance for the browser and Node.js. Super methods and namespaces","url":"https://github.com/darlanalves/ClassJS","size":"0.6 kB","ghwatchers":"7","ghforks":"1","xmlEncodedName":"ClassJS"},{"name":"Hamster.js","tags":["mousewheel","mouse","wheel","events"],"description":"A standalone JavaScript library for cross-browser mouse wheel support.","url":"https://github.com/monospaced/hamster.js","size":"1 kB","ghwatchers":"137","ghforks":"26","xmlEncodedName":"Hamster.js"},{"name":"spin.js","tags":["spinning","indicator","loading","spinner"],"description":"A spinning activity indicator. An animated CSS3 loading spinner.","url":"http://fgnass.github.io/spin.js/","size":"1.3 kB","xmlEncodedName":"spin.js"},{"name":"Graph","tags":["traversing","graph"],"description":"Provides jQuery-like functionality for graph structures in JavaScript.","url":"https://github.com/ryansmith94/Graph","size":"0.5 kB","ghwatchers":"18","ghforks":"4","xmlEncodedName":"Graph"},{"name":"thenBy","tags":["sorting","sort","arrays"],"description":"Enable firstBy().thenBy().thenBy() sorting of arrays using the standard Array.sort","url":"https://github.com/Teun/thenBy.js","tinyminify":true,"size":"0.3 kB","ghwatchers":"385","ghforks":"48","xmlEncodedName":"thenBy"},{"name":"Scorebook","tags":["cricket","scoring"],"description":"A JavaScript library for cricket scoring.","url":"https://github.com/ryansmith94/Scorebook","size":"0.7 kB","ghwatchers":"22","ghforks":"8","xmlEncodedName":"Scorebook"},{"name":"Pledges","tags":["promise","pledge"],"description":"A JavaScript micro-library that provides promise functionality.","url":"https://github.com/ryansmith94/Pledges","size":"0.4 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"Pledges"},{"name":"SVGEventListener","tags":["svg","events","animation","polyfill"],"description":"A polyfill for animate events on SVG on non-supported browsers, like webkit engines","url":"https://github.com/m4dz/SVGEventListener","size":"1.1 kB","ghwatchers":"29","ghforks":"2","xmlEncodedName":"SVGEventListener"},{"name":"chronology.js","tags":["undo","redo","history","chronology"],"description":"A micro javascript library for managing an undo/redo history.","url":"http://chronology.wout.co.uk","size":"0.5 kB","xmlEncodedName":"chronology.js"},{"name":"DoubleMetaphone","tags":["phonetic","metaphone","codec","sounds","like"],"description":"Phonetically encode w/ DoubleMetaphone algorithm ('Alexander' -> 'ALKS')","url":"https://github.com/hgoebl/doublemetaphone","size":"2.5 kB","ghwatchers":"20","ghforks":"4","xmlEncodedName":"DoubleMetaphone"},{"name":"Catiline","tags":["worker","parallel"],"description":"Web workers, but easy.","url":"http://catilinejs.com","size":"3.9 kB","xmlEncodedName":"Catiline"},{"name":"Vuvuzela","tags":["non-recursive","json","stringify","parse"],"description":"Non-recursive JSON.stringify and JSON.parse","url":"https://github.com/nolanlawson/vuvuzela","size":"1 kB","ghwatchers":"31","ghforks":"5","xmlEncodedName":"Vuvuzela"},{"name":"civem.js","tags":["html5","input","validation"],"description":"Custom error messages for HTML5 form validation.","url":"https://github.com/javanto/civem.js","size":"0.6 kB","ghwatchers":"100","ghforks":"19","xmlEncodedName":"civem.js"},{"name":"i18nText","tags":["i18n"],"description":"A JavaScript library for i18n text messages.","url":"https://bitbucket.org/vogdb/i18n-text","size":"1.4 kB","xmlEncodedName":"i18nText"},{"name":"canvas-manipulation","tags":["canvas"],"description":"Enable you canvas with zoom, drag and rotate functionality","url":"https://bitbucket.org/vogdb/canvas-manipulation","size":"1.7 kB","xmlEncodedName":"canvas-manipulation"},{"name":"RaptorJS","tags":["class","inheritance","extend","amd","prototype","prototypal","lazy"],"description":"The core module of RaptorJS provides a lightweight module system that supports namespacing, AMD, class inheritance, mixins, enums and lazy initialization. Works in the browser and Node.js","url":"https://github.com/raptorjs-legacy/raptorjs","size":"4.1 kB","ghwatchers":"94","ghforks":"12","xmlEncodedName":"RaptorJS"},{"name":"Lie","tags":["promise","deferred","async"],"description":"A very small library for promises","url":"https://github.com/calvinmetcalf/lie","size":"1.7 kB","ghwatchers":"647","ghforks":"50","xmlEncodedName":"Lie"},{"name":"assure.js","tags":["promises","promise","deferred","deferreds","aynchronous","async"],"description":"Promises/A+ micro library to help with asynchronous work flow.","url":"https://github.com/avoidwork/assure","size":"1.3 kB","ghwatchers":"15","ghforks":"5","xmlEncodedName":"assure.js"},{"name":"keysort","tags":["array","object","sort","keys","sql","where"],"description":"Sorts an Array of Objects with SQL ORDER BY clause","url":"https://github.com/avoidwork/keysort","size":"0.5 kB","ghwatchers":"10","ghforks":"0","xmlEncodedName":"keysort"},{"name":"klud.js","tags":["testing","unit test","assert","spy","mock"],"description":"A minimal unit testing library.","url":"https://bitbucket.org/zserge/klud.js/","size":"0.5 kB","xmlEncodedName":"klud.js"},{"name":"callbacks.js","tags":["callbacks","events","event manager"],"description":"Callbacks library similar to jQuery's Callbacks. There's also an event manager that allows you to use on(), one(), off() and trigger()","url":"https://github.com/adrianmiu/callbacks","size":"0.7 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"callbacks.js"},{"name":"chronoman","tags":["setTimeout","setInterval","timer","timeout","management","utility"],"description":"Utility class to simplify use of timers created by setTimeout.","url":"https://github.com/gamtiq/chronoman","ghwatchers":"14","ghforks":"0","size":"1 kB","xmlEncodedName":"chronoman"},{"name":"basespace","tags":["namespace","ns","space","object"],"description":"Functions to create namespaces inside objects.","url":"https://github.com/gamtiq/basespace","size":"0.4 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"basespace"},{"name":"mixing","tags":["mix","merge","mixin","object","filter","change","copy","clone"],"description":"Functions to mix, filter, change and copy/clone objects.","url":"https://github.com/gamtiq/mixing","size":"1.3 kB","ghwatchers":"12","ghforks":"1","xmlEncodedName":"mixing"},{"name":"extend","tags":["extend","inherit","prototype","inheritance","class"],"description":"Make one class (constructor function) inherited from another.","url":"https://github.com/gamtiq/extend","ghwatchers":"10","ghforks":"3","size":"0.3 kB","xmlEncodedName":"extend"},{"name":"numgen","tags":["number","sequence","generator","progression","Fibonacci"],"description":"Creates objects that generate number sequences.","url":"https://github.com/gamtiq/numgen","ghwatchers":"5","ghforks":"1","size":"1.3 kB","xmlEncodedName":"numgen"},{"name":"duratiform","tags":["time","duration","divide","separate","decompose","format","millisecond"],"description":"Utility to separate into parts and to format time duration in milliseconds.","url":"https://github.com/gamtiq/duratiform","size":"0.6 kB","ghwatchers":"7","ghforks":"2","xmlEncodedName":"duratiform"},{"name":"eva","tags":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method"],"description":"Functions to create functions and evaluate expressions.","url":"https://github.com/gamtiq/eva","size":"0.7 kB","ghwatchers":"12","ghforks":"1","xmlEncodedName":"eva"},{"name":"adam","tags":["object","process","create","check","field","value","type","kind","size","split","filter","copy","change","map","remove","reverse","empty","transform"],"description":"Functions to create, process and test objects.","url":"https://github.com/gamtiq/adam","size":"2.1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"adam"},{"name":"teo","tags":["test","check","object","utility","filter","validate","data"],"description":"Functions to test/check objects.","url":"https://github.com/gamtiq/teo","size":"1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"teo"},{"name":"simple-slider","tags":["simple","carousel","slider","gallery","slideshow","javascript-carousel"],"description":"The 1kb JavaScript Carousel","url":"https://github.com/ruyadorno/simple-slider","size":"1.1 kB","ghwatchers":"477","ghforks":"49","xmlEncodedName":"simple-slider"},{"name":"easter.js","tags":["easter-egg","keys","sequence"],"description":"Easter eggs made easy.","url":"https://github.com/rkrupinski/easter.js","size":"0.6 kB","ghwatchers":"25","ghforks":"3","xmlEncodedName":"easter.js"},{"name":"overflow-color","tags":["overflow","color","DOM","css"],"description":"Automatically switch css html background color.","url":"https://github.com/dimitrinicolas/overflow-color","size":"0.8 kB","ghwatchers":"21","ghforks":"0"},{"name":"henka","tags":["responsive","respond","media","query","media-query","queries"],"description":"Light weight, portable, single purpose responsive javascript library.","url":"https://github.com/dmikey/henka","ghwatchers":"20","ghforks":"0","size":"0.9 kB","xmlEncodedName":"henka"},{"name":"rssi","tags":["interpolation","string","formatting","template","templating"],"description":"Ruby-like simple string interpolation for Node.js and browsers.","url":"https://github.com/mvasilkov/rssi","ghwatchers":"111","ghforks":"6","size":"0.3 kB","xmlEncodedName":"rssi"},{"name":"FastActive","tags":["events","mobile","touch"],"description":"FastActive is a javascript snippet that makes websites and web apps feel as responsive as native apps on touch devices.","url":"https://github.com/jonathanstark/FastActive","ghwatchers":"517","ghforks":"22","size":"0.2 kB","xmlEncodedName":"FastActive"},{"name":"JSONP","tags":["jsonp","asynchronous","async"],"description":"A slim JSONP request library for Javascript","url":"https://github.com/larryosborn/JSONP","ghwatchers":"76","ghforks":"22","size":"0.8 kB","xmlEncodedName":"JSONP"},{"name":"ResponsiveComments","tags":["responsive","rwd","conditional","loading","progressive","enhancement"],"description":"A client-side solution to conditional loading.","url":"http://responsivecomments.com/","size":"0.7 kB","xmlEncodedName":"ResponsiveComments"},{"name":"Sparklines","tags":["sparkline","sparklines","tiny","graph","line","spark","chart"],"description":"Create sparkline graphs inline with the text. Good defaults, easy to customize.","url":"https://github.com/mariusGundersen/sparkline","ghwatchers":"61","ghforks":"11","size":"0.9 kB","xmlEncodedName":"Sparklines"},{"name":"YoutubeDelayed.js","tags":["youtube","video","loader"],"description":"A a small script which allows you to load youtube player on page only when the user wants to watch the video.","url":"https://github.com/MAD-GooZe/YoutubeDelayed.js","size":"0.4 kB","ghwatchers":"23","ghforks":"1","xmlEncodedName":"YoutubeDelayed.js"},{"name":"Contra","tags":["async","asynchronous","flow","events","callbacks","queue"],"description":"Tiny asynchronous flow control library.","url":"https://github.com/bevacqua/contra","size":"2 kB","ghwatchers":"737","ghforks":"32","xmlEncodedName":"Contra"},{"name":"preloadr.js","tags":["preload","images"],"description":"Preload images, one after another if needed and callback when every image is ready and/or all of them","url":"https://github.com/borisschapira/preloadr","size":"0.3 kB","ghwatchers":"11","ghforks":"3","xmlEncodedName":"preloadr.js"},{"name":"psQuery","tags":["jQuery","DOM","ajax","CSS"],"description":"A fast jQuery replacement library for DOM, ajax, and CSS. 2kb minified+gzipped. Supports IE8+.","url":"https://github.com/pseudosavant/psQuery","ghwatchers":"44","ghforks":"7","size":"1.7 kB","xmlEncodedName":"psQuery"},{"name":"class-256.js","tags":["class","prototype","object","inheritance","oop","super","constructor"],"description":"Less than 256 byte JavaScript classical inheritance pattern library","url":"https://github.com/koffeine/class-256.js","ghwatchers":"7","ghforks":"2","size":"0.2 kB","xmlEncodedName":"class-256.js"},{"name":"psColor","tags":["color","canvas"],"description":"psColor is a small JavaScript library for calculating the average color of an <img> element in the browser.","url":"https://github.com/pseudosavant/psColor","ghwatchers":"15","ghforks":"1","size":"0.5 kB","xmlEncodedName":"psColor"},{"name":"decision-tree.js","tags":["machine learning","decision tree","classifier"],"description":"Tiny library for building Decision Tree and Random Forest classifiers.","url":"https://github.com/lagodiuk/decision-tree-js","size":"1 kB","ghwatchers":"168","ghforks":"35","xmlEncodedName":"decision-tree.js"},{"name":"Nerve","tags":["async","asynchronous","channel","route","observer","mediator","events","callbacks","queue"],"description":"An asynchronous javascript micro framework for event broadcasts along routes and channels.","url":"https://github.com/jstandish/nerve","size":"0.5 kB","ghwatchers":"21","ghforks":"6","xmlEncodedName":"Nerve"},{"name":"tiny-stack","tags":["stack","data","amd"],"description":"Tiny stack for browser or server","url":"http://avoidwork.github.io/tiny-stack","size":"0.3 kB","xmlEncodedName":"tiny-stack"},{"name":"VisSense.js","tags":["visibility","viewtime","viewport","visible","dom"],"description":"A utility library for observing visibility changes of DOM elements. Immediately know when an element becomes hidden, partly visible or fully visible.","url":"https://github.com/vissense/vissense","size":"3.3 kB","ghwatchers":"736","ghforks":"29","xmlEncodedName":"VisSense.js"},{"name":"datediff","tags":["date","time"],"description":"Calculate difference between two dates","url":"https://github.com/dmfilipenko/datediff","size":"0.4 kB","ghwatchers":"18","ghforks":"5","xmlEncodedName":"datediff"},{"name":"lodash dom traverse","tags":["lodash","dom","traverse"],"description":"Dom traversing with lodash","url":"http://szarouski.github.io/lodash.dom-traverse/","size":"1.2 kB","ghwatchers":"20","ghforks":"2","xmlEncodedName":"lodash dom traverse"},{"name":"Parse Form","tags":["form","forms","parse"],"description":"A micro library used to parse and manipulate forms","url":"https://github.com/AdamBrodzinski/parse-form","size":"0.2 kB","ghwatchers":"66","ghforks":"4","xmlEncodedName":"Parse Form"},{"name":"Deb.js","tags":["debugging","console output","stack trace","time execution"],"description":"The tiniest debugger in the world","url":"https://github.com/krasimir/deb.js","size":"0.7 kB","ghwatchers":"1,432","ghforks":"78","xmlEncodedName":"Deb.js"},{"name":"henderson","tags":["statemachine","state","fsm","event","finite","state","machine","promise","promises"],"description":"A tiny event emitter-based finite state machine with promises","url":"https://github.com/orbitbot/henderson","size":"0.6 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"henderson"},{"name":"Balalaika","tags":["dom","selectors","jquery","library"],"description":"Tiny but impossible powerful jQuery-like Javascript DOM library","url":"https://github.com/finom/balalaika","size":"0.6 kB","ghwatchers":"266","ghforks":"28","xmlEncodedName":"Balalaika"},{"name":"Gifffer","tags":["gif","play control","stop","first frame"],"description":"A tiny JavaScript library that prevents the autoplaying of the animated Gifs","url":"https://github.com/krasimir/gifffer","size":"1.3 kB","ghwatchers":"609","ghforks":"68","xmlEncodedName":"Gifffer"},{"name":"Tlite","tags":["ui","tooltips","hints"],"description":"Tooltips with CSS3 transitions (650 bytes of JS min+zipped)","url":"http://chrisdavies.github.io/tlite/","size":"0.7 kB","xmlEncodedName":"Tlite"},{"name":"Rlite","tags":["rlite","route","routing","router","hash","querystring","named","parameters"],"description":"Tiny, simple, light-weight routing (~500 bytes min+zipped)","url":"https://github.com/chrisdavies/rlite","size":"0.6 kB","ghwatchers":"238","ghforks":"32","xmlEncodedName":"Rlite"},{"name":"Kwargs","tags":["python","arguments","kwargs","defaults","function","syntactic sugar"],"description":"Smart python like argument management for javascript","url":"https://github.com/serkanyersen/kwargsjs","size":"0.4 kB","ghwatchers":"112","ghforks":"3","xmlEncodedName":"Kwargs"},{"name":"ifvisible.js","tags":["visibility","idle","coffee","script","interval","requestAnimationFrame"],"description":"Crossbrowser & lightweight way to check if user is looking at the page or interacting with it.","url":"https://github.com/serkanyersen/ifvisible.js","size":"1.3 kB","ghwatchers":"1,605","ghforks":"153","xmlEncodedName":"ifvisible.js"},{"name":"ListOf","tags":["list","collection","array","library","c#"],"description":"A JavaScript implementation of the C# List object.","url":"https://github.com/joelalejandro/stuff","size":"1.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"ListOf"},{"name":"KolorWheel.js","tags":["jQuery","color","color manipulation","gradient","HSL"],"description":"KolorWheel.js generates color palette from a base color and chainable absolute/relative H-S-L transformation methods (incl. specified target color). Documentation contains live examples with editable parameters.","url":"http://linkbroker.hu/stuff/kolorwheel.js","size":"1.4 kB","xmlEncodedName":"KolorWheel.js"},{"name":"SimplyJS","tags":["simplyjs","simply","simple","easy","DOM","events","async","asynchronous","native","prototype","CSS"],"description":"Provides support for manipulating with DOM and events handling. Easy for use, optimized for performance, native browser's support first.","url":"https://github.com/janelznic/simplyjs","size":"2.2 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"SimplyJS"},{"name":"clone","tags":["clone","copy","duplicate"],"description":"Clones/copies arbitrary objects recursively","url":"https://github.com/pvorb/clone","size":"1 kB","ghwatchers":"480","ghforks":"68","xmlEncodedName":"clone"},{"name":"tag","tags":["dom","dom-elements"],"description":"Small utility for creating DOM elements","url":"https://github.com/a-tarasyuk/tag","size":"0.5 kB","ghwatchers":"12","ghforks":"1","xmlEncodedName":"tag"},{"name":"mutant.js","tags":["mutantobserver","dom","changes","scroll","observer","change","mutate"],"description":"DOM Modification observer","url":"https://github.com/gitterHQ/mutant.js","size":"1.5 kB","ghwatchers":"30","ghforks":"7","xmlEncodedName":"mutant.js"},{"name":"NanoModal","tags":["modal","dialog","popup","message"],"description":"A small, self-contained JavaScript modal library with some extra features.","url":"https://github.com/kylepaulsen/NanoModal","size":"2.6 kB","ghwatchers":"43","ghforks":"5","xmlEncodedName":"NanoModal"},{"name":"pure-dialog","tags":["modal","dialog","popup","pop under","alert"],"description":"Pure JavaScript modal dialog designed to simplify the creation of dialogs in Web and Hybrid Mobile apps","url":"https://github.com/john-doherty/pure-dialog","size":"2 kB","ghwatchers":"5","ghforks":"3","xmlEncodedName":"pure-dialog"},{"name":"dom-i18n","tags":["i18n","dom","translation","multilingual","html","language","internationalization"],"description":"Provides a very basic HTML multilingual support using JavaScript","url":"https://github.com/ruyadorno/dom-i18n","size":"0.8 kB","ghwatchers":"97","ghforks":"10","xmlEncodedName":"dom-i18n"},{"name":"Rlite","tags":["rlite","route","routing","router","hash","querystring","named","parameters"],"description":"Tiny, simple, light-weight routing","url":"https://github.com/chrisdavies/rlite","size":"0.6 kB","ghwatchers":"238","ghforks":"32","xmlEncodedName":"Rlite"},{"name":"nanoajax","tags":["ajax","http"],"description":"Very basic cross-browser AJAX","url":"https://github.com/yanatan16/nanoajax","size":"0.6 kB","ghwatchers":"205","ghforks":"41","xmlEncodedName":"nanoajax"},{"name":"stupid-lib","tags":["light-weight","helpers","jquery-like","simple"],"description":"browser-javascript, jquery-like lib","url":"https://github.com/nighca/lib","size":"1 kB","ghwatchers":"4","ghforks":"2","xmlEncodedName":"stupid-lib"},{"name":"universal-diff","tags":["diff","compare","string","array","queue"],"description":"diff & merge algorithm realized with Javascript.","url":"https://github.com/nighca/universal-diff","size":"0.8 kB","ghwatchers":"51","ghforks":"6","xmlEncodedName":"universal-diff"},{"name":"lightrouter","tags":["lightrouter","route","routing","router","hash","querystring","named","parameters"],"description":"Ultra lightweight javascript routing for traditional and single page apps.","url":"https://github.com/garygreen/lightrouter","size":"0.8 kB","ghwatchers":"51","ghforks":"5","xmlEncodedName":"lightrouter"},{"name":"ListOf","tags":["list","collection","array","library","c#"],"description":"A JavaScript implementation of the C# List object.","url":"https://github.com/joelalejandro/stuff","size":"1.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"ListOf"},{"name":"EventoJS","tags":["dom events","event","evento"],"description":"An easy way to manipulate events on DOM.","url":"https://github.com/gustavohenrique/eventojs","size":"0.5 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"EventoJS"},{"name":"Carpet.js","tags":["module","simple","autoload","context","settings","module pattern","advice"],"description":"Small, easy-to-learn and modular JavaScript framework for big","url":"https://github.com/mateuszgachowski/Carpet.js","size":"0.8 kB","ghwatchers":"22","ghforks":"7","xmlEncodedName":"Carpet.js"},{"name":"keycharm","tags":["keyboard"],"description":"Simple, lightweight key-binding libw. MIT or Apache 2.0.","url":"https://github.com/AlexDM0/keycharm","size":"0.9 kB","ghwatchers":"6","ghforks":"5","xmlEncodedName":"keycharm"},{"name":"hash-router","tags":["hash","path","route","router"],"description":"Tiny and lightweight browser router library, developed with SPA in mind :)","url":"https://github.com/michaelsogos/Hash-Router","size":"1.1 kB","ghwatchers":"26","ghforks":"8","xmlEncodedName":"hash-router"},{"name":"JsDic","tags":["dependency","injection","container","di","dic"],"description":"Dependecy injection container inspired by Angular.js.","url":"https://github.com/janmarek/JsDic","size":"0.8 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"JsDic"},{"name":"GreinerHormann","tags":["math","geometry","polygon","clipping","polyline"],"description":"Greiner-Hormann polygon clipping algorithm. Does AND, OR, XOR.","url":"http://w8r.github.io/GreinerHormann/","size":"1.7 kB","xmlEncodedName":"GreinerHormann"},{"name":"Core.js","tags":["framework","lightweight","scalable","modular","sandbox"],"description":"It helps you create scalable applications written in Javascript, giving you some structure and patterns to keep everything separated.","url":"https://github.com/mauriciosoares/core.js","size":"1 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"Core.js"},{"name":"js-mediator","tags":["mediator","module","design pattern","MVC"],"description":"Design pattern to write clean, reusable, decoupled, standalone Modules that are coupled with Mediators.","url":"https://github.com/markmarijnissen/js-mediator","size":"0.8 kB","ghwatchers":"18","ghforks":"0","xmlEncodedName":"js-mediator"},{"name":"wjs","tags":["ajax","lazy","loading","remote","package"],"description":"A JavaScript / PHP to manage lazy loading from server to client.","url":"https://github.com/weeger/wjs","size":"2.5 kB","ghwatchers":"43","ghforks":"7","xmlEncodedName":"wjs"},{"name":"micro-query","tags":["uri","url","query","queryparams","parameters","parsing","querystring"],"description":"A minimal URL parameter parsing library.","url":"https://github.com/aaron-harvey/micro-query","size":"0.3 kB","ghwatchers":"12","ghforks":"8","xmlEncodedName":"micro-query"},{"name":"Carpet.js","tags":["module","simple","autoload","context","settings","module pattern","advice"],"description":"Small, easy-to-learn and modular JavaScript framework for big","url":"https://github.com/mateuszgachowski/Carpet.js","size":"0.8 kB","ghwatchers":"22","ghforks":"7","xmlEncodedName":"Carpet.js"},{"name":"aja.js","tags":["rest","ajax","xhr","jsonp"],"description":"Ajax without XML : Asynchronous JavaScript and JavaScript/JSON(P)","url":"http://krampstudio.com/aja.js/","size":"2.4 kB","ghwatchers":"300","ghforks":"43","xmlEncodedName":"aja.js"},{"name":"proto","tags":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","url":"https://github.com/fresheneesz/proto","size":"0.7 kB","ghwatchers":"16","ghforks":"3","xmlEncodedName":"proto"},{"name":"mongo-parse","tags":["mongo","mongodb","mongo db","parse","parser"],"description":"A parser for mongo db queries.","url":"https://github.com/fresheneesz/mongo-parse","size":"1.4 kB","ghwatchers":"18","ghforks":"10","xmlEncodedName":"mongo-parse"},{"name":"Storage.js","tags":["IndexedDB","WebSQL","localStorage","sessionStorage","localStorage","storage","database","object","store"],"description":"JavaScript Library for Cross Browser Persistence using WebStorage (LocalStorage, SessionStorage, WebSQL and IndexedDB) for all browsers.","url":"https://github.com/lcavadas/Storage.js","size":"1.8 kB","ghwatchers":"38","ghforks":"2","xmlEncodedName":"Storage.js"},{"name":"nano-markdown","tags":["markdown","html","nano","micro","microjs","small"],"description":"A very small Markdown to HTML converter","url":"https://github.com/Holixus/nano-markdown","size":"1 kB","ghwatchers":"14","ghforks":"6","xmlEncodedName":"nano-markdown"},{"name":"SimpleScrollbar","tags":["scrollbar","ui","interface","scroll","custom","lightweight"],"description":"Very simple vanilla javascript library for creating a custom scrollbar cross-browser and cross-devices","url":"https://github.com/buzinas/simple-scrollbar","size":"0.9 kB","ghwatchers":"260","ghforks":"82","xmlEncodedName":"SimpleScrollbar"},{"name":"tplize","tags":["templates"],"description":"A ~2kb lib for quickly prototyping templated content","url":"https://github.com/gutnikov/tplize","size":"1.5 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"tplize"},{"name":"populate.js","tags":["json","form"],"description":"Populate form fields from a JSON object. Extremely small, no dependencies.","url":"https://github.com/dannyvankooten/populate.js","size":"0.5 kB","ghwatchers":"48","ghforks":"9","xmlEncodedName":"populate.js"},{"name":"offside.js","tags":["menu","navigation","responsive","off-canvas","offcanvas","off","canvas"],"description":"A minimal ~3kb JavaScript kit without library dependencies to push things off-canvas using using just class manipulation.","url":"https://github.com/toomuchdesign/offside","size":"1.3 kB","ghwatchers":"105","ghforks":"5","xmlEncodedName":"offside.js"},{"name":"html-chain","tags":["html","lightweight","dom","dom-builder","templating","chain"],"description":"A small javascript library to build DOM elements by chaining javascript functions","url":"https://github.com/maael/html-chain","size":"0.6 kB","ghwatchers":"17","ghforks":"4","xmlEncodedName":"html-chain"},{"name":"wallop.js","tags":["helper","lightweight","slider","browser","carousel","native","slideshow","gallery","toggle"],"description":"A minimal JS library for showing & hiding things.","url":"https://github.com/peduarte/wallop","size":"1.3 kB","ghwatchers":"1,127","ghforks":"92","xmlEncodedName":"wallop.js"},{"name":"Universal Router","tags":["react","reactjs","react-component","route","routes","router","routing","flux"],"description":"A simple middleware-style router for isomorphic JavaScript web apps","url":"https://www.kriasoft.com/universal-router/","size":"2.3 kB","ghwatchers":"983","ghforks":"83","xmlEncodedName":"Universal Router"},{"name":"isMobileOS.js","tags":["helper","lightweight","mobile","detection","user agent string","ES6","UMD"],"description":"A simple ECMAScript6 module which checks for mobile operating systems.","url":"https://github.com/RazorfishGermany/es6-module-isMobileOs","size":"0.3 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"isMobileOS.js"},{"name":"nanoflux.js","tags":["flux","lightweight","full flux","tiny","micro"],"description":"A very lightweight and dependency-free Flux implementation","url":"https://github.com/ohager/nanoflux","size":"1.4 kB","ghwatchers":"50","ghforks":"3","xmlEncodedName":"nanoflux.js"},{"name":"smoke-signal","tags":["pubsub","event","observer"],"description":"Simple small functional event observer for the browser and node.","url":"https://github.com/StephanHoyer/smoke-signal","size":"0.3 kB","ghwatchers":"11","ghforks":"3","xmlEncodedName":"smoke-signal"},{"name":"nanoflux.js","tags":["flux","lightweight","full flux","tiny","micro"],"description":"A very lightweight and dependency-free Flux implementation","url":"https://github.com/ohager/nanoflux","size":"1.4 kB","ghwatchers":"50","ghforks":"3","xmlEncodedName":"nanoflux.js"},{"name":"min.css","tags":["minify","css","javascript","nodejs","fastest","tiniest"],"description":"min.css is the tiniest, fastest and efficient JavaScript library for minifying CSS files. It works in node and the browser.","url":"https://github.com/w3core/min.css","size":"1.1 kB","ghwatchers":"10","ghforks":"3","xmlEncodedName":"min.css"},{"name":"viiny-dragger","tags":["viiny","viiny-dragger","drag and drop"],"description":"vinny-dragger is a drag and drop plugin for javascript.","url":"http://giraysam.github.io/viiny-dragger/","size":"1.5 kB","ghwatchers":"25","ghforks":"2","xmlEncodedName":"viiny-dragger"},{"name":"razax.js","tags":["ajax","xhr","xmlhttprequest","simple","nojquery","minimalcode"],"description":"Simple way to make ajax requests with or without arguments in single line of code. Easy for novice users.","url":"https://github.com/razaibi/razaxjs","size":"0.3 kB","ghwatchers":"4","ghforks":"4","xmlEncodedName":"razax.js"},{"name":"TinyAnimate","tags":["animate","animation","css","easing","svg","tiny","lightweight","requestAnimationFrame","window.performance"],"description":"Animation micro library. Vanilla JavaScript.","url":"https://github.com/branneman/TinyAnimate","ghwatchers":"80","ghforks":"17","size":"1.1 kB","xmlEncodedName":"TinyAnimate"},{"name":"XPopUp","tags":["popup","window.open","javascript","browser","callback","nojquer","simple","easy","events","chrome","firefox"],"description":"Full control over JavaScript PopUp's.","url":"https://github.com/reduardo7/xpopup","ghwatchers":"4","ghforks":"3","size":"1.3 kB","xmlEncodedName":"XPopUp"},{"name":"sjsClass","tags":["class","node","npm","javascript","nojquery","browser","chrome"],"description":"Simple JavaScript Class. Create your advanced JavaScript Class!","url":"https://github.com/reduardo7/sjsClass","ghwatchers":"23","ghforks":"3","size":"2.6 kB","xmlEncodedName":"sjsClass"},{"name":"arenite","tags":["dependency","inversion","control","injection","ioc","di","require","dependency injection","provider","IOC","microkernel","module","framework","service locator"],"description":"Inversion of Control / Dependency Injection Library","url":"https://github.com/arenite/arenite","ghwatchers":"1","ghforks":"0","size":"4.3 kB","xmlEncodedName":"arenite"},{"name":"ns.js","tags":["namespace","module","scope","simple","name","space"],"description":"A small and simple Javascript namespace function","url":"https://github.com/Soldier-B/ns.js","size":"0.1 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"ns.js"},{"name":"microTK","tags":["dom","events","query selection"],"description":"A tiny JavaScript framework","url":"https://microtk.io","ghwatchers":"0","ghforks":"0","size":"0.8 kB","xmlEncodedName":"microTK"},{"name":"tinyfade.js","tags":["javascript","slideshow","slider","responsive","fade","image"],"description":"A tiny plain JavaScript library for fully responsive image slideshows.","url":"https://moqmar.github.io/tinyfade.js/","ghwatchers":"1","ghforks":"0","size":"0.7 kB","xmlEncodedName":"tinyfade.js"},{"name":"boomerang-cache","tags":["boomerang","boomerang-cache","localStorage","sessionStorage","javascript cache"],"description":"boomerangCache is a client side caching library based on localStorage and sessionStorage","url":"http://giraysam.github.io/boomerang-cache/","ghwatchers":"8","ghforks":"4","size":"5.6 kB","xmlEncodedName":"boomerang-cache"},{"name":"Prophet.js","tags":["toast","notification","growl","snarl","alert","flash","messages","vanilla"],"description":"Vanilla JS library for clean toast notifications","url":"https://github.com/binarybaba/prophetjs","size":"1.5 kB","ghwatchers":"21","ghforks":"4","xmlEncodedName":"Prophet.js"},{"name":"simple-require-loader","tags":["loader","spa","cross-platform"],"description":"A simple, dynamic, powerful module loader with hot swapping and optional remote loading support.","url":"https://github.com/isiahmeadows/simple-require-loader","ghwatchers":"6","ghforks":"1","size":"0.4 kB","xmlEncodedName":"simple-require-loader"},{"name":"Redux","tags":["data","functional"],"description":"Predictable state container for JavaScript apps","url":"http://redux.js.org/","size":"3 kB","ghwatchers":"41,779","ghforks":"10,157","xmlEncodedName":"Redux"},{"name":"microBench","tags":["performance","benchmark"],"description":"Tiny, simple framework to benchmark your JS functions in browser console","url":"https://github.com/kmpatel/microBench/releases","size":"0.6 kB","ghwatchers":"1","ghforks":"1","xmlEncodedName":"microBench"},{"name":"Animatelo","tags":["animation","animate","web animation"],"description":"Animatelo is a bunch of cool, fun, and cross-browser animations for you to use in your projects. This is a porting to Web Animation API of the fabulous animate.css project.","url":"https://gibbok.github.io/animatelo/","ghwatchers":"417","ghforks":"34","size":"2.9 kB","xmlEncodedName":"Animatelo"},{"name":"xPrototype","tags":["javascript","prototype","extend","object","quick","simple","nojquery","loop","browser","chrome","firefox"],"description":"xPrototype is a fast, small and feature-rich JavaScript library. It makes things like for loop, for each, time out / interval, data types, sort / order, conversion, clone object, extend object, string manipulation much simpler with an easy-to-use API that works across a multitude of browsers and platforms.","url":"https://github.com/reduardo7/xPrototype","ghwatchers":"1","ghforks":"1","size":"3.3 kB","xmlEncodedName":"xPrototype"},{"name":"microdi","tags":["dependency","injection","di","es6"],"description":"Micro helper for JavaScript dependency injection (DI).","url":"https://github.com/yavorskiy/microdi","ghwatchers":"13","ghforks":"1","size":"0.1 kB","xmlEncodedName":"microdi"},{"name":"aph","tags":["javascript","DOM","jQuery","Manipulation"],"description":"A mini (1.2kb) DOM Manipulation library. A very slim and fast helper.","url":"https://github.com/kaisermann/aph","ghwatchers":"7","ghforks":"0","size":"1.5 kB","xmlEncodedName":"aph"},{"name":"FlexSearch","tags":["javascript","search engine","full-text search","elastic search"],"description":"Next-Generation full text search library with zero dependencies.","url":"https://github.com/nextapps-de/flexsearch","ghwatchers":"5","ghforks":"2","size":"3.2 kB","xmlEncodedName":"FlexSearch"}]; \ No newline at end of file +var MicroJS=[{"name":"Wirup","tags":["nano-framework","single-page-application","fast","routing","wirup","frontend","javascript"],"description":"Lightweight nano framework for Single Page Applications (SPAs) on the web.","url":"https://github.com/razaibi/Wirup","size":"1.4 kB","ghwatchers":"2","ghforks":"0"},{"name":"WirupExpress","tags":["nano-framework","data-binding","lightweight","fast","wirupexpress","frontend","javascript"],"description":"The Ultra Lightweight version of Wirup.","url":"https://github.com/razaibi/WirupExpress","size":"0.7 kB","ghwatchers":"0","ghforks":"0"},{"name":"sprites.js","tags":["sprite","canvas","sprites.js","requestAnimationFrame","raf","front-end","frontend","javascript"],"description":"Sprites.js is simple canvas sprites animation library. No setTimeout() or setInterval(). Just rAF.","url":"https://github.com/wisniewski94/sprites.js","size":"0.7 kB","ghwatchers":"23","ghforks":"5","xmlEncodedName":"sprites.js"},{"name":"ShadowQuery","tags":["web-components"],"description":"Micro-library for writing vanilla web components","url":"https://github.com/schrotie/shadow-query","size":"1.9 kB","ghwatchers":"2","ghforks":"0"},{"name":"VP PubSub","tags":["pubsub","publish","subscribe","message","pub","sub","emitter","event"],"description":"VP PubSub is a publish/subscribe library that supports message filtering","url":"https://github.com/schubergphilis/vp-pubsub","size":"1.1 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"VP PubSub"},{"name":"tinyModal","tags":["modal","javascript","vanilla","simple"],"description":"Clean, Fast, Modular and customizable Modal Window controller","url":"http://juanbrujo.github.io/tinyModal/","size":"0.8 kB","ghwatchers":"40","ghforks":"6","xmlEncodedName":"tinyModal"},{"name":"NodeList.js","tags":["DOM","NodeList"],"description":"Use the Native DOM APIs as easily as jQuery","url":"https://github.com/eorroe/NodeList.js","size":"1.2 kB","ghwatchers":"504","ghforks":"45","xmlEncodedName":"NodeList.js"},{"name":"Dragula","tags":["Drag and Drop","simple","Library"],"description":"Drag and drop so simple it hurts","url":"https://bevacqua.github.io/dragula/","size":"2.6 kB","ghwatchers":"18,614","ghforks":"1,553","xmlEncodedName":"Dragula"},{"name":"fuzzysearch","tags":["Lightweight","Tiny","fast","fuzzy","fuzzy-search","search"],"description":"Tiny and blazing-fast fuzzy search in JavaScript","url":"https://github.com/bevacqua/fuzzysearch","size":"0.2 kB","ghwatchers":"2,263","ghforks":"80","xmlEncodedName":"fuzzysearch"},{"name":"Tiny Browser Framework","tags":["framework","web","websocket","browser"],"description":"Minimal Client JS Framework","url":"https://github.com/thedumbterminal/TinyBrowserFramework","size":"0.9 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"Tiny Browser Framework"},{"name":"syrupjs","tags":["pubsub","component-interaction","event","jquery"],"description":"A tiny pub/sub jQuery micro-framework for distant component interaction","url":"https://github.com/ahmed-musallam/syrupjs","size":"0.3 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"syrupjs"},{"name":"blobcounter.js","tags":["blob","image","canvas","processing","2D","blobcounter"],"description":"blobcounter.js helps you find blobs and shapes in an image","url":"https://github.com/satrobit/blobcounter.js","size":"0.5 kB","ghwatchers":"3","ghforks":"1","xmlEncodedName":"blobcounter.js"},{"name":"uniloc","tags":["router","routing","query","parser","parsing","parameters","uri"],"description":"Uniloc is a utility to match URIs to named routes, and to generate URIs given a route name and options","url":"https://github.com/unicorn-standard/uniloc","size":"1.3 kB","ghwatchers":"95","ghforks":"16","xmlEncodedName":"uniloc"},{"name":"body-scroll-freezer.js","tags":["scroll","freeze","modal","scrolling","lightbox","performance"],"description":"Dependency-free JS module to freeze body scroll when opening modal box","url":"https://github.com/ramonvictor/body-scroll-freezer","size":"0.5 kB","ghwatchers":"16","ghforks":"1","xmlEncodedName":"body-scroll-freezer.js"},{"name":"ViaJS","tags":["content","load","route","dynamic","browser","page","html"],"description":"Via is a small library that allows you to load content on to a page dynamically","url":"https://github.com/abdi0987/ViaJS","size":"0.7 kB","ghwatchers":"52","ghforks":"21","xmlEncodedName":"ViaJS"},{"name":"miq","tags":["jquery","dom","ajax"],"description":"Lightweight modern jQuery-like DOM library","url":"http://www.bitstorm.org/javascript/miq/","size":"1.3 kB","ghwatchers":"14","ghforks":"3","xmlEncodedName":"miq"},{"name":"RouterX","tags":["router","frp","rxjs","cycle","rx"],"description":"A stupid simple functional reactive router built for use with Rx.js apps","url":"https://github.com/bcoop713/routerx","size":"0.4 kB","ghwatchers":"17","ghforks":"0","xmlEncodedName":"RouterX"},{"name":"scriber","tags":["html","DOM","builder","scriber","writer"],"description":"A simple fluent library to write html DOM elements","url":"https://jccazeaux.github.io/scriber","size":"0.9 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"scriber"},{"name":"xflagable","tags":["flag","event","promise"],"description":"Create flag promises","url":"https://github.com/javimosch/xflagable/","size":"0.5 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"xflagable"},{"name":"data-obs","tags":["observer","events","lightweight"],"description":"Simple lightweigh javascript data observer","url":"https://github.com/lmettini/data-obs","size":"0.3 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"data-obs"},{"name":"xtypejs","tags":["xtype","type","typeof","data-type","validation"],"description":"Elegant, highly efficient data validation for JavaScript","url":"http://xtype.js.org","size":"2.9 kB","ghwatchers":"313","ghforks":"10","xmlEncodedName":"xtypejs"},{"name":"diapason","tags":["dependency","injection","di","asynchronous","promise"],"description":"Asynchronous dependency injections that works on any promise framework","url":"https://jccazeaux.github.io/diapason","size":"1.4 kB","ghwatchers":"0","ghforks":"1","xmlEncodedName":"diapason"},{"name":"window.module","tags":["di","dependency","injection","container","module","require"],"description":"Synchronous module system for browsers.","url":"https://github.com/ziolko/window.module","size":"0.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"window.module"},{"name":"Location Init","tags":["router","callback","init"],"description":"Simple route callbacks","url":"https://github.com/tbleckert/location-init","size":"0.4 kB","ghwatchers":"11","ghforks":"4","xmlEncodedName":"Location Init"},{"name":"indent.js","tags":["indent","autoindent","indentation","jsbeautify"],"description":"Pure indentation of JS, CSS, HTML code and nothing extra.","url":"https://github.com/zebzhao/indent.js","size":"2.9 kB","ghwatchers":"14","ghforks":"0","xmlEncodedName":"indent.js"},{"name":"Handorgel","tags":["handorgel","accordion","tabs","toggle","collapse"],"description":"Accessible W3C conform accordion written in ES6.","url":"https://github.com/oncode/handorgel","size":"3 kB","ghwatchers":"183","ghforks":"17","xmlEncodedName":"Handorgel"},{"name":"Freezer.js","tags":["immutable","react","tree","cursors","store","events"],"description":"An immutable tree data structure that is always updated from the root, making easier to think in a reactive way.","url":"https://github.com/arqex/freezer","size":"3.5 kB","ghwatchers":"1,227","ghforks":"49","xmlEncodedName":"Freezer.js"},{"name":"Trkl","tags":["observable","frp","functional reactive","functional","state","knockout","rx"],"description":"Reactive microlibrary with observables and Knockout-style computeds in 430 bytes (minified and gzipped)","url":"https://github.com/jbreckmckye/trkl","size":"0.5 kB","ghwatchers":"58","ghforks":"1","xmlEncodedName":"Trkl"},{"name":"FrontExpress","tags":["frontexpress","router","routing","express","spa","framework","front-end","tiny","parameters","querystring","named","path","uri"],"description":"An Express.js-Style router for the front-end","url":"https://www.frontexpressjs.com","size":"3.5 kB","ghwatchers":"266","ghforks":"15","xmlEncodedName":"FrontExpress"},{"name":"Tinyscrollbar","tags":["scrollbar","ui","interface","scroll"],"description":"Create pretty scrollbars","url":"https://github.com/wieringen/tinyscrollbar","size":"1.4 kB","ghwatchers":"399","ghforks":"208","xmlEncodedName":"Tinyscrollbar"},{"name":"ba.js","tags":["animation","animations","css","css3"],"description":"Create and manage CSS3 animations from JavaScript.","url":"http://bajs.io","size":"0.8 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"ba.js"},{"name":"Trak.js","tags":["trak","track","events","analytics","google","tag","tagging"],"description":"Universal analytics event tracking API wrapper","url":"https://github.com/mrmartineau/trak.js","size":"0.8 kB","ghwatchers":"125","ghforks":"14","xmlEncodedName":"Trak.js"},{"name":"justlazy.js","tags":["lazy","load","lazyload","responsive","image","images","loader","srcset","picture","spinner"],"description":"Micro javascript library to lazy load responsive images (also with srcset attribute).","url":"http://fhopeman.github.io/justlazy","size":"0.7 kB","ghwatchers":"91","ghforks":"16","xmlEncodedName":"justlazy.js"},{"name":"ease.js","tags":["ease","animation"],"description":"ease component for animation, include 30 ease functions.","url":"https://github.com/lloydzhou/ease","size":"0.6 kB","ghwatchers":"11","ghforks":"1","xmlEncodedName":"ease.js"},{"name":"Nano ID","tags":["id","uuid","generator"],"description":"Secure URL-friendly unique string ID generator","url":"https://github.com/ai/nanoid","size":"0.1 kB","ghwatchers":"6,585","ghforks":"229","xmlEncodedName":"Nano ID"},{"name":"Nano Events","tags":["events","EventEmitter","pub/sub","emit"],"description":"Simple and tiny event emitter library","url":"https://github.com/ai/nanoevents","size":"0.3 kB","ghwatchers":"331","ghforks":"12","xmlEncodedName":"Nano Events"},{"name":"ClassManager","tags":["language","class","inheritance","multiple","extend"],"description":"One of the fastest and most convenient class systems in the world","url":"https://github.com/kogarashisan/ClassManager","size":"4.5 kB","ghwatchers":"36","ghforks":"3","xmlEncodedName":"ClassManager"},{"name":"FloatSidebar.js","tags":["sticky","float","sidebar"],"description":"Make your sidebar floating","url":"https://github.com/vursen/FloatSidebar.js","size":"1.7 kB","ghwatchers":"37","ghforks":"5","xmlEncodedName":"FloatSidebar.js"},{"name":"geojson2svg","tags":["maps","geojson","svg"],"description":"Converts geojson to svg string given svg viewport size and maps extent. Used for data visulizaton on maps.","url":"https://github.com/gagan-bansal/geojson2svg","size":"2 kB","ghwatchers":"95","ghforks":"25","xmlEncodedName":"geojson2svg"},{"name":"N2O.js","tags":["web","framework","bert","binary","ws","websocket","templat","utf","validation","erlang"],"description":"Robust binary WebSocket channels, templates, UTF-8 and validation for Erlang N2O Server.","url":"https://github.com/synrc/n2o","size":"2.7 kB","ghwatchers":"1,166","ghforks":"158","xmlEncodedName":"N2O.js"},{"name":"Rat.js","tags":["canvas","graphics","oop","html5","games","image","draw"],"description":"Use objects on canvas","url":"https://github.com/keyten/Rat.js","size":"0.7 kB","ghwatchers":"23","ghforks":"7","xmlEncodedName":"Rat.js"},{"name":"Timesheet.js","tags":["timesheet","graph","charts","flow","gantt","draw"],"description":"Visualize your data with Timesheet.js","url":"https://github.com/sbstjn/timesheet.js","size":"1.1 kB","ghwatchers":"6,578","ghforks":"534","xmlEncodedName":"Timesheet.js"},{"name":"dual-emitter","tags":["browser","chrome","chromium","cross","cross-browser","custom","dom","dual","emitter","event","events","explorer","firefox","ie","ie8","internet","invoke","bind","mini","mozilla","node","nodejs","spa","databinding","binding","two way","data binding"],"description":"Cross-browser (and IE8) + node.js event emitter in 35 lines. Invoke custom or DOM event. Useful for two-way data-binding!!","url":"https://github.com/charlike/dual-emitter","size":"3.7 kB","ghwatchers":"24","ghforks":"2","xmlEncodedName":"dual-emitter"},{"name":"Muject","tags":["dependency","injection","inversion","control","ioc","di","require"],"description":"10-SLOC no-bullshit dependency injection micro-library","url":"https://github.com/srijs/muject","size":"0.1 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"Muject"},{"name":"Cquence.js","tags":["animation","banner","CSS animations"],"description":"A Super Tiny JavaScript Animation Library","url":"https://github.com/RamonGebben/Cquence","size":"0.7 kB","ghwatchers":"319","ghforks":"21","xmlEncodedName":"Cquence.js"},{"name":"fetchival","tags":["fetch","promise","json","xhr","ajax","rest"],"description":"Easy fetch requests","url":"https://github.com/typicode/fetchival","size":"0.6 kB","ghwatchers":"481","ghforks":"29","xmlEncodedName":"fetchival"},{"name":"VanillaMasker","tags":["mask input","mask","vanilla"],"description":"VanillaMasker is a pure javascript mask input","url":"http://vanilla-masker.github.io/vanilla-masker/","size":"1.5 kB","ghwatchers":"982","ghforks":"144","xmlEncodedName":"VanillaMasker"},{"name":"once.js","tags":["called","once","function","one","single","coffeescript","javascript","amd","node","web"],"description":"Enforce that a CoffeeScript or JavaScript function can only be executed once.","url":"https://github.com/daniellmb/once.js","size":"0.1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"once.js"},{"name":"micro-events","tags":["event","performance","event emitter","listener","handler","eventing","amd","node","web"],"description":"A minimal event emitter implementation","url":"https://github.com/alexanderGugel/micro-events","size":"0.6 kB","ghwatchers":"21","ghforks":"2","xmlEncodedName":"micro-events"},{"name":"strg.js","tags":["localStorage","sessionStorage","cookie","cookies"],"description":"Simple and clear localStorage, sessionStorage and cookie operating library with the single API","url":"https://github.com/fend25/strg.js","size":"0.7 kB","ghwatchers":"36","ghforks":"4","xmlEncodedName":"strg.js"},{"name":"imago.js","tags":["image","image manipulation","image resizing","image trimming"],"description":"It's a wonderful image library! With the purpose to facilitate the manipulation of images, imago.js enables you to perform trimming and resizing","url":"https://github.com/evandroeisinger/imago.js","size":"2.1 kB","ghwatchers":"34","ghforks":"3","xmlEncodedName":"imago.js"},{"name":"VidBG","tags":["video","background","embed"],"description":"micro-library for embedding video backgrounds into web pages","url":"https://github.com/daniellmb/VidBG","size":"0.3 kB","ghwatchers":"20","ghforks":"1","xmlEncodedName":"VidBG"},{"name":"WorkerB","tags":["web","worker","webworker","async","threads","inline"],"description":"Extremely simple inline Web Worker for easy multithreading in JS","url":"https://github.com/lukeschaefer/WorkerB","size":"0.6 kB","ghwatchers":"5","ghforks":"1","xmlEncodedName":"WorkerB"},{"name":"aop.js","tags":["aspect","oriented","programming","aop","functional"],"description":"Aspect Oriented Programming Micro Library.","url":"https://github.com/daniellmb/aop.js","size":"0.2 kB","ghwatchers":"12","ghforks":"0","xmlEncodedName":"aop.js"},{"name":"di.js","tags":["dependency","injection","di"],"description":"Dependency Injection Micro Library.","url":"https://github.com/daniellmb/di.js","size":"0.3 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"di.js"},{"name":"ab.js","tags":["ab test","a/b test","split test","testing"],"description":"A/B/n Testing Micro Library.","url":"https://github.com/daniellmb/ab.js","size":"0.2 kB","ghwatchers":"38","ghforks":"5","xmlEncodedName":"ab.js"},{"name":"vanillatree","tags":["jstree","jquery","interactive trees","vanilla","pure","native"],"description":"Tiny replacement of jQuery jstree (\"interactive trees\") with no dependencies.","url":"https://github.com/finom/vanillatree","size":"1.7 kB","ghwatchers":"58","ghforks":"10","xmlEncodedName":"vanillatree"},{"name":"devicedetector.js","tags":["device detector","client-side","ismobile","check mobile"],"description":"Tiny script detecting if you are on a desktop, mobile or tablet device.","url":"https://github.com/PoeHaH/devicedetector","size":"0.3 kB","ghwatchers":"36","ghforks":"12","xmlEncodedName":"devicedetector.js"},{"name":"MicroLib-Tabs","tags":["dom","tabs","tabbed content"],"description":"A small library for easily creating tabbed content. Small markup and a single function.","url":"https://github.com/VizuaaLOG/microlib-tabs","size":"0.7 kB","ghwatchers":"8","ghforks":"0","xmlEncodedName":"MicroLib-Tabs"},{"name":"Chaintastic","tags":["data","functional","chain"],"description":"Create chainable sync/async APIs easily","url":"https://github.com/ezakto/chaintastic","size":"0.6 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"Chaintastic"},{"name":"Holen","tags":["xhr","ajax","nojquery","xmlhttprequest","x-requested-with","http","simple","minimal","german","deutsch","angular"],"description":"Simple and standalone AJAX library for modern browsers. Inspired by Angular's $http method.","url":"https://github.com/RickStanley/Holen","size":"0.7 kB","ghwatchers":"1","ghforks":"0"},{"name":"Dom.js","tags":["dom","dom manipulation","dom traversal","dom events","crossbrowser","event","traversal"," manipulation"],"description":"DOM.js is a lightweight, fast and cross browser library for DOM traversal, manipulation and event handling.","url":"https://github.com/dkraczkowski/dom.js","size":"5.2 kB","ghwatchers":"120","ghforks":"24","xmlEncodedName":"Dom.js"},{"name":"Collection.js","tags":["localStorage","database","db","simple","crossbrowser","query","collection","entity"],"description":"Collection.js is small but yet powerfull local database build on top of the localstorage.","url":"https://github.com/dkraczkowski/collection.js","size":"1.5 kB","ghwatchers":"36","ghforks":"4","xmlEncodedName":"Collection.js"},{"name":"Infect.js","tags":["dependency injection","DI","dependency","injection","dependency-free"],"description":"Infectiously simple dependency injection for any JavaScript project","url":"https://github.com/amwmedia/infect.js","size":"0.8 kB","ghwatchers":"144","ghforks":"7","xmlEncodedName":"Infect.js"},{"name":"Pegasus","tags":["AJAX","JSON","GET","xhr","request","promise","parallel","performance","load","preload"],"description":"Load JSON data while still loading other scripts (xhr + promise).","url":"https://github.com/typicode/pegasus","size":"0.2 kB","ghwatchers":"686","ghforks":"60","xmlEncodedName":"Pegasus"},{"name":"FinnishBankUtils","tags":["Finnish","IBAN","Validation","Viitenumero","Reference number"],"description":"Library for validating and creating Finnish IBAN bank account numbers and reference numbers.","url":"https://github.com/vkomulai/finnish-bank-utils","size":"1.9 kB","ghwatchers":"12","ghforks":"5","xmlEncodedName":"FinnishBankUtils"},{"name":"PerfNow.js","tags":["performance","benchmark","polyfill","high","resolution","timer","now"],"description":"A high resolution performance benchmarking polyfill","url":"https://github.com/daniellmb/perfnow.js","size":"0.1 kB","ghwatchers":"42","ghforks":"8","xmlEncodedName":"PerfNow.js"},{"name":"SaVaGe.js","tags":["svg"],"description":"A small SVG library with a chaining API","url":"https://github.com/strathausen/savage","size":"0.4 kB","ghwatchers":"28","ghforks":"4","xmlEncodedName":"SaVaGe.js"},{"name":"style.js","tags":["style","CSS GUI"],"description":"A layman's tool to style HTML Elements and share CSS values","url":"https://github.com/dhilipsiva/style.js","size":"0.9 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"style.js"},{"name":"hyphen","tags":["text","hyphenation","hyphen","liang"],"description":"Franklin M. Liang's hyphenation algorithm, implemented in Javascript","url":"https://github.com/ytiurin/hyphen","size":"1 kB","ghwatchers":"62","ghforks":"7","xmlEncodedName":"hyphen"},{"name":"Smart Select","tags":["select","multi-select","multi select","standalone","library","micro","smart"],"description":"Smart select is replacing and beautifying standard selects while keeping them async.","url":"https://github.com/davidecantoni/smart-select","size":"2.1 kB","ghwatchers":"5","ghforks":"1","xmlEncodedName":"Smart Select"},{"name":"CRC32","tags":["crc","crc-32","checksum","check","verify","error","hash"],"description":"Blazing fast CRC-32 checksum algorithm for binary and Unicode data.","url":"https://github.com/SheetJS/js-crc32","size":"0.6 kB","ghwatchers":"214","ghforks":"18","xmlEncodedName":"CRC32"},{"name":"AsyncIterator","tags":["async","iterate","callback"],"description":"A very lightweight javascript library for async iteration. Callback-chain-free. Zero dependency.","url":"https://github.com/aravindbaskaran/simple-async","size":"0.3 kB","ghwatchers":"9","ghforks":"4","xmlEncodedName":"AsyncIterator"},{"name":"cryptofoo","tags":["hash","hashing","md5","whirlpool"],"description":"A good compromise between speed and validity to hash strings","url":"https://github.com/SimonWaldherr/cryptofoo","size":"4.8 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"cryptofoo"},{"name":"guard","tags":["access","control","acl","guard","auth","authorized","unauthorized"],"description":"Utility to split opportunities by the account level (free\\pro\\enterprise\\etc.) for frontend and node","url":"https://github.com/iofjuupasli/guard","size":"0.7 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"guard"},{"name":"micromarkdown.js","tags":["markdown","md","html","converter"],"description":"convert markdown to HTML in under 5kb","url":"https://github.com/SimonWaldherr/micromarkdown.js","size":"4.4 kB","ghwatchers":"170","ghforks":"38","xmlEncodedName":"micromarkdown.js"},{"name":"mailcheck","tags":["library","email","spelling","autosuggest","autocorrect","typo"],"description":"Reduce user-misspelled email addresses in your forms.","url":"https://github.com/mailcheck/mailcheck","size":"1.6 kB","ghwatchers":"7,394","ghforks":"442","xmlEncodedName":"mailcheck"},{"name":"MoaJS","tags":["class","classes","extend","inheritance","oop","mixins"],"description":"ExtJs syntax for declaration object inheritance, mixins, static methods / properties / mixins, singleton declaration out of the box and less then 2kB minified JavaScript code.","url":"https://github.com/Pencroff/MoaJs","size":"1.5 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"MoaJS"},{"name":"stateman.js","tags":["router","state","spa"],"description":"A tiny foundation that providing nested state-based routing for complex web application.decodeURI","url":"https://github.com/leeluolee/stateman","size":"4.3 kB","ghwatchers":"374","ghforks":"40","xmlEncodedName":"stateman.js"},{"name":"bLazyJS","tags":["lazy","lazyload","image","images","retina","responsive","loader"],"description":"A lightweight script for lazy loading and multi-serving (retina and responsive) images","url":"http://dinbror.dk/blazy/","size":"1.9 kB","ghwatchers":"2,462","ghforks":"304","xmlEncodedName":"bLazyJS"},{"name":"hu.js","tags":["svg","vector","graphics","games"],"description":"A really light library for creation, manipulation and animation of SVG.","url":"https://github.com/Canop/hu.js","size":"1.3 kB","ghwatchers":"51","ghforks":"6","xmlEncodedName":"hu.js"},{"name":"SimpleBinder","tags":["binding","data","input","change","event","callback","library","functional"],"description":"simplebinder is a zero dependency one-way databinder for javascript.","url":"https://github.com/james2doyle/simplebinder","size":"0.6 kB","ghwatchers":"50","ghforks":"7","xmlEncodedName":"SimpleBinder"},{"name":"ArrowJS","tags":["notification","cross-browser","namespace"],"description":"Arrow is a small library for displaying a arrow pointing to the browser download location","url":"https://github.com/pbojinov/arrow-js","size":"1.3 kB","ghwatchers":"37","ghforks":"9","xmlEncodedName":"ArrowJS"},{"name":"minivents","tags":["events"],"description":"A mini event library for Javascript applications","url":"https://github.com/allouis/minivents","size":"0.2 kB","ghwatchers":"403","ghforks":"38","xmlEncodedName":"minivents"},{"name":"audioJS","tags":["audio","html5"],"description":"AudioJS is a agnostic and cross-browser lib to work easily with the AudioContext API of HTML5.","url":"https://github.com/evandrolg/audiojs","size":"0.9 kB","ghwatchers":"43","ghforks":"14","xmlEncodedName":"audioJS"},{"name":"CornerJS","tags":["directives","WeakMap","MutationObserver"],"description":"IE9+ Angular-style directives for binding events to adding, removing and modifying classes, attributes and tags of DOM elements. Includes MutationObserver and WeakMap IE9+ polyfills","url":"https://github.com/Jabher/cornerjs","size":"1.3 kB","ghwatchers":"68","ghforks":"7","xmlEncodedName":"CornerJS"},{"name":"http.js","tags":["http","ajax","rest"],"description":"http.js is an object oriented javascript library for making http requests and ajax calls.","url":"https://github.com/organic-scholar/http.js","size":"2 kB","ghwatchers":"61","ghforks":"16","xmlEncodedName":"http.js"},{"name":"Automator.js","tags":["Automation","Unit testing","Sequence","User interaction"],"description":"A minimal JavaScript library for automating practically anything in Javascript.","url":"https://github.com/brophdawg11/Automator.js","size":"1.7 kB","ghwatchers":"24","ghforks":"3","xmlEncodedName":"Automator.js"},{"name":"Hover","tags":["Hoverboard","Flux","React","store","model","data","listener"],"description":"A very lightweight (anti-gravity?) data model and Flux store with actions and a state change listener.","url":"https://github.com/jesseskinner/hover","size":"0.6 kB","ghwatchers":"94","ghforks":"4","xmlEncodedName":"Hover"},{"name":"j2c","tags":["CSS","CSS-in-JS","compiler","preprocessor","SASS","LESS","Stylus","JSON"],"description":"CSS-in-JS libray. Small, yet robust and featureful. Local classes, nested selectors, all @rules (nestable), full style sheets or inline styles...","url":"http://j2c.py.gy","size":"1.7 kB","ghwatchers":"160","ghforks":"8","xmlEncodedName":"j2c"},{"name":"JsChannels","tags":["Channels","core.async","async","Promise","Deferred","Deferreds","Promises"],"description":"A minimal JavaScript Channels library, inspired by Clojure's core.async.","url":"https://github.com/brophdawg11/JsChannels","size":"0.5 kB","ghwatchers":"51","ghforks":"5","xmlEncodedName":"JsChannels"},{"name":"translate.js","tags":["translation","translate","i18n","internationalization","languages","localization"],"description":"A simple function to translate strings. With support for multiple plural forms and replacements/placeholders","url":"https://github.com/musterknabe/translate.js","ghwatchers":"32","ghforks":"18","size":"0.6 kB","xmlEncodedName":"translate.js"},{"name":"bullet","tags":["bullet","pubsub","pub-sub","events","communication","oop"],"description":"Bullet is an ultra lightweight and simple to use pub-sub library, with AMD/module support and an intuitive API.","url":"https://github.com/munkychop/bullet","size":"1.7 kB","ghwatchers":"44","ghforks":"6","xmlEncodedName":"bullet"},{"name":"selecting","tags":["selecting","selection","string","text","api"],"description":"A library that allows you to access the text selected by the user","url":"https://github.com/EvandroLG/selecting","size":"0.8 kB","ghwatchers":"71","ghforks":"8","xmlEncodedName":"selecting"},{"name":"Avtomat","tags":["automaton","finite-state","machine","deterministic","non-deterministic","input","event"],"description":"Non-deterministic finite state machine (with empty moves) implementation","url":"https://github.com/Temoto-kun/avtomat","size":"0.9 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"Avtomat"},{"name":"store","tags":["localStorage","sessionStorage","JSON","namespace","API","extensible"],"description":"A better API for using localStorage and sessionStorage.","url":"https://github.com/nbubna/store","size":"1.4 kB","ghwatchers":"1,218","ghforks":"86","xmlEncodedName":"store"},{"name":"EQCSS","tags":["element","queries","container","query","css","reprocessor","rwd","scoped","styles","parent","selector"],"description":"EQCSS is a CSS reprocessor that introduces Scoped Styles, Element Queries, Container Queries, and new selectors like $parent and $prev and more","url":"https://github.com/eqcss/eqcss/","size":"3.1 kB","ghwatchers":"1,419","ghforks":"63","xmlEncodedName":"EQCSS"},{"name":"Oboe.js","tags":["ajax","streaming","download","json","parser","sax","jsonpath","http"],"description":"Library for progressive parsing of ajax responses. Provides notification of objects found without waiting for the request to complete.","url":"http://oboejs.com","size":"5.5 kB","ghwatchers":"4,481","ghforks":"209","xmlEncodedName":"Oboe.js"},{"name":"webSqlSync.js","tags":["websql","sqlite","synchronization","sync","sql","web-sql","database","server"],"description":"Library to synchronize automatically a local WebSql database (SQLite on the browser) with your server","url":"https://github.com/orbitaloop/WebSqlSync","size":"3.2 kB","ghwatchers":"483","ghforks":"117","xmlEncodedName":"webSqlSync.js"},{"name":"attach.js","tags":["dom","instantiation","attach","javascript"],"description":"A DOM instantiation API designed to tidy up and encapsulate attaching JavaScript to the page.","url":"http://nicbell.github.io/attach.js/","size":"0.4 kB","ghwatchers":"16","ghforks":"1","xmlEncodedName":"attach.js"},{"name":"loglevel","tags":["log","logging","console"],"description":"Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods","url":"https://github.com/pimterry/loglevel","size":"1.1 kB","ghwatchers":"1,275","ghforks":"117","xmlEncodedName":"loglevel"},{"name":"form-to-obj","tags":["form","serialization"],"description":"A small, zero-dependency form-to-object serialization utility","url":"https://github.com/chrisdavies/form-to-obj","size":"0.5 kB","ghwatchers":"45","ghforks":"8","xmlEncodedName":"form-to-obj"},{"name":"Satnav","tags":["routing","micro","hashchange","pushState"],"description":"A micro (~1.5kb gzipped) JS routing library. Satnav provides functionality for Regex-like paths in JavaScript.","url":"https://github.com/f5io/satnav-js","size":"1.3 kB","ghwatchers":"64","ghforks":"9","xmlEncodedName":"Satnav"},{"name":"Tempreites","tags":["templating"],"description":"Semantic templates. Binds data to HTML markup. Direto da roça for the browser and server, no DOM needed, just strings.","url":"https://github.com/fiatjaf/tempreites","size":"2.3 kB","ghwatchers":"29","ghforks":"2","xmlEncodedName":"Tempreites"},{"name":"asynquence","tags":["async","asynchronous","control flow","flow control"],"description":"asynchronous flow-control using sequences and gates","url":"https://github.com/getify/asynquence","size":"2 kB","ghwatchers":"1,435","ghforks":"111","xmlEncodedName":"asynquence"},{"name":"native-promise-only","tags":["async","asynchronous","promise","promises"],"description":"A polyfill for native ES6 Promises as close as possible (no extensions) to the strict spec definitions.","url":"https://github.com/getify/native-promise-only","size":"1.2 kB","ghwatchers":"644","ghforks":"77","xmlEncodedName":"native-promise-only"},{"name":"Miniscroll.js","tags":["scrollbar","touch","desktop","scroll"],"description":"A simple scrollbar for desktop and mobile application using javascript. ","url":"https://github.com/rogerluiz/Miniscroll-JS","size":"3.3 kB","ghwatchers":"69","ghforks":"18","xmlEncodedName":"Miniscroll.js"},{"name":"Taggle.js","tags":["tags","input","autocomplete"],"description":"Form-ready delicious style tagging library.","url":"http://sean.is/poppin/tags","size":"3.6 kB","ghwatchers":"580","ghforks":"119","xmlEncodedName":"Taggle.js"},{"name":"OneDollar.js","tags":["gesture","recognition","recognizer","multitouch","interactive","input","jquery"],"description":"A JavaScript implementation of the $1 Gesture Recognizer, a two-dimensional template based gesture recognition","url":"https://github.com/nok/onedollar-unistroke-coffee","size":"1.6 kB","ghwatchers":"56","ghforks":"2","xmlEncodedName":"OneDollar.js"},{"name":"LocalDB.js","tags":["nosql","ODM","mongo","json","database","web applications","localStorage"],"description":"LocalDB.js is a tool that maps the structure of the databases in objects using the localStorage API, no database drivers are required, just add the library and use it!","url":"http://agnostic.github.io/LocalDB.js","size":"1.9 kB","ghwatchers":"84","ghforks":"15","xmlEncodedName":"LocalDB.js"},{"name":"mess-js","tags":["message","toast","toasts","android","dialog","info"],"description":"mess - Messages Extremely Simple Script: dialog 'android toast' like messages.","url":"https://github.com/graciano/mess","size":"0.6 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"mess-js"},{"name":"Countable","tags":["paragraphs","words","characters","counting","live","text"],"description":"Countable is a JavaScript function to add live paragraph-, word- and character-counting to an HTML element.","url":"http://radlikewhoa.github.io/Countable","size":"0.9 kB","ghwatchers":"1,575","ghforks":"145","xmlEncodedName":"Countable"},{"name":"css-time.js","tags":["css","time","string","milliseconds","convert","conversion"],"description":"A tiny library that converts milliseconds to and from CSS time strings.","url":"https://github.com/philbooth/css-time.js","size":"0.3 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"css-time.js"},{"name":"accounting.js","tags":["math","number","money","currency parsing","currency formatting"],"description":"A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.","url":"http://josscrowcroft.github.io/accounting.js/","size":"1.2 kB","ghwatchers":"4,137","ghforks":"467","xmlEncodedName":"accounting.js"},{"name":"sloth.js","tags":["lazy","initialize","viewport","amd","library","scroll"],"description":"Lazy initialize components of a webpage when they become visible","url":"https://github.com/hakubo/Sloth","size":"0.4 kB","ghwatchers":"53","ghforks":"8","xmlEncodedName":"sloth.js"},{"name":"atom.js","tags":["async","barrier","control","events","flow","properties"],"description":"Small class providing async control flow, property listeners, barrier pattern, and more. For node and browser.","url":"https://github.com/zynga/atom","size":"1.5 kB","ghwatchers":"112","ghforks":"22","xmlEncodedName":"atom.js"},{"name":"token-boy","tags":["token","api","digest","base64","api-token"],"description":"Serves 'n' bit tokens, either digested or not.","url":"https://github.com/zeusdeux/token-boy","size":"0.4 kB","ghwatchers":"3","ghforks":"1","xmlEncodedName":"token-boy"},{"name":"Respond.js","tags":["polyfill","min-width","max-width","Media Queries","CSS3"],"description":"A fast & lightweight polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more).","url":"https://github.com/scottjehl/Respond","size":"2 kB","ghwatchers":"11,460","ghforks":"3,692","xmlEncodedName":"Respond.js"},{"name":"miuri.js","tags":["client","server","util","parser","uri"],"description":"Simple URI parser/builder","url":"https://github.com/radmen/miuri.js","size":"1.2 kB","ghwatchers":"39","ghforks":"8","xmlEncodedName":"miuri.js"},{"name":"RSVP.js","tags":["Promises/A+","asynchronous"],"description":"it is a tiny implementation of Promises/A+ and a mixin for turning objects into event targets. It works in node and the browser.","url":"https://github.com/tildeio/rsvp.js","size":"4.4 kB","ghwatchers":"3,542","ghforks":"270","xmlEncodedName":"RSVP.js"},{"name":"Chibi","tags":["chibi","framework"],"description":"A tiny JavaScript micro-framework.","url":"https://github.com/kylebarrow/chibi","size":"2.6 kB","ghwatchers":"487","ghforks":"40","xmlEncodedName":"Chibi"},{"name":"check-types.js","tags":["types","type-checking","duck-typing"],"description":"A small library for checking types and throwing exceptions.","url":"https://github.com/philbooth/check-types.js","size":"2.1 kB","ghwatchers":"231","ghforks":"34","xmlEncodedName":"check-types.js"},{"name":"augment","tags":["augment","augments","augmentation","extend","extends","extension","prototype","prototypal","class","classical","object","inheritance","uber","super","constructor","oop"],"description":"The world's smallest and fastest classical JavaScript inheritance pattern.","url":"https://github.com/javascript/augment","size":"0.3 kB","ghwatchers":"883","ghforks":"41","xmlEncodedName":"augment"},{"name":"lexer","tags":["lex","lexer","lexical","analysis","scan","scanner","scanning","token","tokenize","tokenizer","tokenization","flex","jison"],"description":"An elegant armor-plated JavaScript lexer modelled after flex. Easily extensible to tailor to your need for perfection.","url":"https://github.com/aaditmshah/lexer","size":"0.9 kB","ghwatchers":"288","ghforks":"36","xmlEncodedName":"lexer"},{"name":"infuse.js","tags":["ioc","di","injection","dependency","framework"],"description":"IOC library to handle dependency injection","url":"https://github.com/soundstep/infuse.js","size":"2.2 kB","ghwatchers":"88","ghforks":"15","xmlEncodedName":"infuse.js"},{"name":"vagueTime.js","tags":["time","date"],"description":"formats time differences as a vague time, e.g. 'just now' or '3 weeks ago'","url":"https://github.com/philbooth/vagueTime.js","size":"0.7 kB","ghwatchers":"188","ghforks":"14","xmlEncodedName":"vagueTime.js"},{"name":"disTime.js","tags":["time","date","dates","times","language","ago"],"description":"converts and updates UNIX-Timestamps to strings like \"5 days ago\" in six languages (en, de, it, es, fr, pt)","url":"https://github.com/SimonWaldherr/disTime.js","size":"0.8 kB","ghwatchers":"33","ghforks":"14","xmlEncodedName":"disTime.js"},{"name":"debug-websql","tags":["websql","debug","sql"],"description":"console.log every call made to Web SQL, for debugging purposes","url":"https://github.com/nolanlawson/debug-websql","size":"0.9 kB","ghwatchers":"5","ghforks":"2","xmlEncodedName":"debug-websql"},{"name":"parseTime.js","tags":["time","date","dates","times","language","parse","strings"],"description":"convert strings like \"five days ago\" to an integer (with time in milliseconds) in three languages (en, de, pt)","url":"https://github.com/SimonWaldherr/parseTime.js","size":"2.4 kB","ghwatchers":"24","ghforks":"16","xmlEncodedName":"parseTime.js"},{"name":"is.js","tags":["condition","validate"],"description":"Micro javascript library that allows you to do conditions faster.","url":"https://github.com/Cedriking/is.js","size":"1.7 kB","ghwatchers":"151","ghforks":"13","xmlEncodedName":"is.js"},{"name":"wavyjs","tags":["audio","wav","sound","html5","RIFF"],"description":"Zero dependency javascript RIFF Wav file manipulation routines.","url":"https://github.com/northeastnerd/wavyjs","size":"1.9 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"wavyjs"},{"name":"jBone","tags":["base","events","html","performance","backbone","jquery","attributes","manipulations","dom","mobile"],"description":"JavaScript Library for Events and DOM manipulation. Replacement jQuery for Backbone in browsers.","url":"https://github.com/kupriyanenko/jbone","size":"3.2 kB","ghwatchers":"282","ghforks":"36","xmlEncodedName":"jBone"},{"name":"Smoothie Charts","tags":["canvas","charts","graphs"],"description":"Smooooooth JavaScript charts for realtime streaming data","url":"http://smoothiecharts.org/","size":"4 kB","ghwatchers":"1,917","ghforks":"201","xmlEncodedName":"Smoothie Charts"},{"name":"svg-path.js","tags":["SVG","raphael","graphics"],"description":"Chainable SVG path string generator with some sugar added","url":"https://github.com/ZIJ/svg-path","size":"0.7 kB","ghwatchers":"29","ghforks":"4","xmlEncodedName":"svg-path.js"},{"name":"DOMinate","tags":["dom-builder","dom","templating"],"description":"DOMinate the DOM with this simple, yet powerful DOM building utility and template engine.","url":"https://github.com/adius/DOMinate/","size":"0.4 kB","ghwatchers":"36","ghforks":"5","xmlEncodedName":"DOMinate"},{"name":"soma.js","tags":["framework","mvc","events","command","observer"],"description":"Javascript mvc framework that help developers write loosely-coupled applications to increase scalability and maintainability.","url":"http://somajs.github.io/somajs/","size":"4.1 kB","ghwatchers":"274","ghforks":"33","xmlEncodedName":"soma.js"},{"name":"Panzer","tags":["data"],"description":"A comprehensive node-tree solution, for smart data","url":"https://github.com/bemson/Panzer","size":"4.5 kB","ghwatchers":"24","ghforks":"4","xmlEncodedName":"Panzer"},{"name":"Histogram","tags":["canvas","color"],"description":"Provides a histogram data structure from a PNG/JPEG/GIF image path. NodeJS, AMD module and vanilla JS support","url":"https://github.com/Munter/node-histogram","size":"0.8 kB","ghwatchers":"52","ghforks":"10","xmlEncodedName":"Histogram"},{"name":"Simplify.js","tags":["math","geometry","simplification","polyline"],"description":"A tiny high-performance JavaScript 2D/3D polyline simplification library.","url":"http://mourner.github.io/simplify-js/","size":"0.5 kB","xmlEncodedName":"Simplify.js"},{"name":"DOMpteur","tags":["dom","ready","html","getElement","selector"],"description":"play with the Document Object Model (DOM) tree - change and insert Elements.","url":"https://github.com/SimonWaldherr/DOMpteur","size":"2.3 kB","ghwatchers":"4","ghforks":"1","xmlEncodedName":"DOMpteur"},{"name":"cssFx","tags":["css","css3","polyfill"],"description":"Standalone polyfill that inserts the vendor-specific CSS3 properties necessary for old and new browsers.","url":"http://imsky.github.io/cssFx/","size":"2.9 kB","xmlEncodedName":"cssFx"},{"name":"TinyCore.js","tags":["architecture","module","scalable","spa"],"description":"A tiny JavaScript modular architecture library.","url":"https://github.com/mawrkus/tinycore","size":"1.3 kB","ghwatchers":"98","ghforks":"9","xmlEncodedName":"TinyCore.js"},{"name":"microevent.js","tags":["events","node"],"description":"event emitter for any javascript object for node and browser.","url":"https://github.com/jeromeetienne/microevent.js","size":"0.3 kB","ghwatchers":"782","ghforks":"141","xmlEncodedName":"microevent.js"},{"name":"dropinrequire.js","tags":["loader","commonjs","require","node"],"description":"dropin replacement for require() in browser.","url":"http://jeromeetienne.github.io/dropinrequire.js/","size":"0.5 kB","xmlEncodedName":"dropinrequire.js"},{"name":"genData","tags":["data"],"description":"A normalization pattern to build, query, and manipulate everything.","url":"https://github.com/bemson/genData/","size":"0.6 kB","ghwatchers":"17","ghforks":"3","xmlEncodedName":"genData"},{"name":"Pass-Meter.js","tags":["password","strength","meter"],"description":"Simple password strength testing.","url":"https://github.com/syntaqx/pass-meter","size":"0.7 kB","ghwatchers":"16","ghforks":"4","xmlEncodedName":"Pass-Meter.js"},{"name":"nTh","tags":["string","numbers","formatting","language","text"],"description":"A micro-library to return ordinal suffixes from integers (ie: 1st, 2nd, 3rd, 7th of 9)","url":"https://github.com/dperish/nTh.js","size":"0.2 kB","ghwatchers":"9","ghforks":"2","xmlEncodedName":"nTh"},{"name":"Slang","tags":["string","functional","language"],"description":"A collection of utility functions for strings","url":"https://github.com/devongovett/slang","size":"2.1 kB","ghwatchers":"162","ghforks":"11","xmlEncodedName":"Slang"},{"name":"TinyDatePicker","tags":["date","calendar","picker","datepicker"],"description":"Small, zero-dependency date picker (~1500 bytes min+zipped)","url":"https://github.com/chrisdavies/tiny-date-picker","size":"3.5 kB","ghwatchers":"257","ghforks":"48","xmlEncodedName":"TinyDatePicker"},{"name":"vanilla-picker-mini","tags":["ux","ui","color","colour","picker","color picker","color-picker","colorpicker","rgb","rgba","hsl","hsla","hex","alpha"],"description":"A simple, easy to use color picker with alpha selection.","url":"https://github.com/Sphinxxxx/vanilla-picker-mini","size":"4.4 kB","ghwatchers":"3","ghforks":"1"},{"name":"Backbone","tags":["mvc","data","functional"],"description":"Lightweight MVC—models with custom events, collections with rich enumerables, views and RESTful JSON.","url":"http://backbonejs.org/","size":"7.7 kB","ghwatchers":"27,381","ghforks":"5,723","xmlEncodedName":"Backbone"},{"name":"$dom","tags":["dom","events","animation"],"description":"Selecting, styling, traversing and animating DOM elements.","url":"https://github.com/julienw/dollardom","size":"2.5 kB","ghwatchers":"278","ghforks":"37","xmlEncodedName":"$dom"},{"name":"DOMBrew","tags":["dom","dom-builder"],"description":"Clean API high performance DOM builder","url":"https://github.com/glebm/DOMBrew","size":"1 kB","ghwatchers":"27","ghforks":"2","xmlEncodedName":"DOMBrew"},{"name":"HEX/RGB","tags":["color"],"description":"Two way color conversion for Hexadecimal and RGB integer colors","url":"https://github.com/daniellmb/HEX-RGB-Conversion","tinyminify":true,"size":"0.1 kB","ghwatchers":"37","ghforks":"15","xmlEncodedName":"HEX/RGB"},{"name":"smoke-pure.js","tags":["modal library","simple modal library","modal","simple modal","alert","confirm","prompt"],"description":"A simple modal library for JS.","url":"https://github.com/agamemnus/smoke-pure.js","size":"2.2 kB","ghwatchers":"13","ghforks":"3","xmlEncodedName":"smoke-pure.js"},{"name":"MinPubSub","tags":["events","pubsub"],"description":"A publish/subscribe messaging framework","url":"https://github.com/daniellmb/MinPubSub","size":"0.3 kB","ghwatchers":"286","ghforks":"56","xmlEncodedName":"MinPubSub"},{"name":"Namespacer","tags":["namespace","modules"],"description":"A simple library for creating namespaced objects in the browser.","url":"https://github.com/sporto/namespacer.js","size":"0.1 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"Namespacer"},{"name":"Zepto","tags":["base","dom","webkit","jquery","ajax","events","mobile"],"description":"jQuery API-compatible framework for modern web browsers. Optional Ajax, Events, Data and Touch modules.","url":"http://zeptojs.com","size":"5.4 kB","xmlEncodedName":"Zepto"},{"name":"Lemonad","tags":["functional","monads","data","protocols"],"description":"A functional library inspired by Clojure and ClojureScript, built on Underscore","url":"http://functionaljs.org/","size":"3.5 kB","ghwatchers":"636","ghforks":"34","xmlEncodedName":"Lemonad"},{"name":"Weld","tags":["templating"],"description":"Completely unobtrusive, full featured template antimatter. Works in Node.js or the Browser, awesome built-in debugger.","url":"http://github.com/tmpvar/weld","size":"2.1 kB","ghwatchers":"685","ghforks":"39","xmlEncodedName":"Weld"},{"name":"Mustache","tags":["templating"],"description":"Minimal, logic-less templating with {{mustaches}}. Great for server- or client-side templating.","url":"http://mustache.github.io/","size":"2.2 kB","xmlEncodedName":"Mustache"},{"name":"tiny-mustache","tags":["templating","template","tiny"],"description":"The smallest implementation of Mustache logic-less template engine.","url":"https://github.com/aishikaty/tiny-mustache","size":"0.4 kB","ghwatchers":"34","ghforks":"7","xmlEncodedName":"tiny-mustache"},{"name":"LABjs","tags":["loader"],"description":"The *performance* script loader: on-demand parallel script loading with ordered execution for dependencies.","url":"http://labjs.com/","size":"2 kB","xmlEncodedName":"LABjs"},{"name":"Qwery","tags":["css"],"description":"Blazing fast query selector engine allowing you to select elements with CSS1, CSS2 & CSS3 selectors.","url":"https://github.com/ded/qwery","size":"0.6 kB","ghwatchers":"1,108","ghforks":"93","xmlEncodedName":"Qwery"},{"name":"preach","tags":["publish","subscribe","pubsub","browser","node"],"description":"A lightweight pubsub utility for node and the browser.","url":"https://github.com/zeusdeux/preach","size":"2 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"preach"},{"name":"mixit","tags":["mixin","merge","json"],"description":"a smart mixin/merging object helper","url":"https://github.com/stephanebachelier/mixit","size":"0.2 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"mixit"},{"name":"Lawnchair","tags":["data","storage","webkit","mobile"],"description":"Client side JSON document store. Perfect for WebKit mobile apps.","url":"http://brian.io/lawnchair/","size":"1.1 kB","ghwatchers":"2,159","ghforks":"263","xmlEncodedName":"Lawnchair"},{"name":"Transparency.js","tags":["templating"],"description":"Semantic template engine for the browser that maps JSON objects to DOM elements by id, class and data-bind attributes.","url":"https://github.com/leonidas/transparency","size":"0.6 kB","ghwatchers":"962","ghforks":"112","xmlEncodedName":"Transparency.js"},{"name":"BuildSugar","tags":["templating"],"description":"Bizarrely clean & simple syntax sugar for building HTML/XML strings","url":"http://jsfiddle.net/SubtleGradient/4W3RR/","size":"0.2 kB","xmlEncodedName":"BuildSugar"},{"name":"Tweet-Templ","tags":["templating"],"description":"function t(s,d){for(var p in d)s=s.replace(new RegExp('{'+p+'}','g'),d[p]);return s;}","url":"http://mir.aculo.us/2011/03/09/little-helpers-a-tweet-sized-javascript-templating-engine/","size":"0.1 kB","xmlEncodedName":"Tweet-Templ"},{"name":"Bonzo","tags":["dom"],"description":"Hassle-free, library agnostic, extensible DOM utility.","url":"https://github.com/ded/bonzo","size":"3.9 kB","ghwatchers":"1,263","ghforks":"146","xmlEncodedName":"Bonzo"},{"name":"Bean","tags":["events","dom"],"description":"Bean is a slick, cross-platform, framework-agnostic event utility designed for desktop, mobile, and touch-based browsers. ","url":"https://github.com/fat/bean","size":"3.9 kB","ghwatchers":"1,375","ghforks":"126","xmlEncodedName":"Bean"},{"name":"$script.js","tags":["loader"],"description":"An asynchronous JavaScript loader and dependency manager with an astonishingly impressive footprint.","url":"https://github.com/ded/script.js","size":"0.8 kB","ghwatchers":"2,664","ghforks":"324","xmlEncodedName":"$script.js"},{"name":"Klass","tags":["language","class"],"description":"An expressive, cross platform JavaScript Class provider with a slick, classical interface to prototypal inheritance.","url":"https://github.com/ded/klass","size":"0.5 kB","ghwatchers":"746","ghforks":"87","xmlEncodedName":"Klass"},{"name":"OORJa","tags":["language","class"],"description":"OORJa = Object Oriented JavaScript","url":"http://maxpert.github.io/oorja/","size":"0.6 kB","xmlEncodedName":"OORJa"},{"name":"Classy","tags":["language","class"],"description":"Classy is a small JavaScript library that implements Python inspired classes for JavaScript.","url":"http://classy.pocoo.org/","size":"0.7 kB","xmlEncodedName":"Classy"},{"name":"Director","tags":["spa"],"description":"A lightweight, full featured client side router for single page apps.","url":"https://github.com/flatiron/director","size":"3.5 kB","ghwatchers":"5,404","ghforks":"508","xmlEncodedName":"Director"},{"name":"snack.js","tags":["base","dom","events","ajax","language"],"description":"A tiny, cross-browser, library with DOM manipulation, events, pub/sub, Ajax and language utilities.","url":"http://snackjs.com/","size":"3.1 kB","xmlEncodedName":"snack.js"},{"name":"Ender","tags":["compose","base","mobile"],"description":"An open, powerful, micro-to-macro API for composing your own custom JavaScript library.","url":"http://ender.no.de","size":"0.5 kB","xmlEncodedName":"Ender"},{"name":"Mold","tags":["templating"],"description":"Mold is a templating library.","url":"http://marijnhaverbeke.nl/mold/","size":"1.5 kB","ghwatchers":"39","ghforks":"8","xmlEncodedName":"Mold"},{"name":"Reqwest","tags":["ajax"],"description":"Robust wrapper for asynchronous http requests.","url":"https://github.com/ded/Reqwest","size":"3.5 kB","ghwatchers":"2,745","ghforks":"337","xmlEncodedName":"Reqwest"},{"name":"majaX.js","tags":["ajax","http","xml","csv","json","binary","api"],"description":"make AJAX Requests and get (parsed) values (and headers).","url":"https://github.com/SimonWaldherr/majaX.js","size":"4.2 kB","ghwatchers":"16","ghforks":"5","xmlEncodedName":"majaX.js"},{"name":"JSON2","tags":["polyfill","json"],"description":"Creates a JSON property in the global object, if there isn't already one, with stringify and parse methods.","url":"https://github.com/douglascrockford/JSON-js","size":"1.3 kB","ghwatchers":"7,738","ghforks":"4,372","xmlEncodedName":"JSON2"},{"name":"unblock.js","tags":["async","control","flow","functional"],"description":"A single function for dead simple asynchronous control flow.","url":"https://github.com/machellerogden/unblock","size":"0.3 kB","ghwatchers":"9","ghforks":"1","xmlEncodedName":"unblock.js"},{"name":"yepnope","tags":["polyfill","loader"],"description":"yepnope is an asynchronous conditional resource loader that allows you to load only the scripts that your users need.","url":"http://yepnopejs.com/","size":"1 kB","xmlEncodedName":"yepnope"},{"name":"ICanHaz","tags":["templating"],"description":"Simple & powerful client-side templating for jQuery or Zepto.js.","url":"https://github.com/HenrikJoreteg/ICanHaz.js","size":"2.3 kB","ghwatchers":"844","ghforks":"141","xmlEncodedName":"ICanHaz"},{"name":"Q","tags":["functional","events"],"description":"when/defer-style promises for JavaScript (CommonJS/Promises/A,B,D)","url":"https://github.com/kriskowal/q","ghwatchers":"14,537","ghforks":"1,228","size":"4.7 kB","xmlEncodedName":"Q"},{"name":"domReady","tags":["dom","event","ready","load"],"description":"Lets you know when the DOM is ready","url":"https://github.com/ded/domready","size":"0.3 kB","ghwatchers":"837","ghforks":"127","xmlEncodedName":"domReady"},{"name":"ES6-Map-Shim","tags":["language","polyfill"],"description":"Shim for latest ES6.next Map spec","url":"https://github.com/eriwen/es6-map-shim","size":"0.8 kB","ghwatchers":"22","ghforks":"2","xmlEncodedName":"ES6-Map-Shim"},{"name":"Loadrunner","tags":["loader"],"description":"Simple, flexible and sane JavaScript loader and build tool for browsers","url":"https://github.com/danwrong/loadrunner","size":"2.8 kB","ghwatchers":"271","ghforks":"40","xmlEncodedName":"Loadrunner"},{"name":"observer","tags":["observer","events"],"description":"CommonJS implementation of the observer design pattern","url":"https://github.com/azer/observer","size":"0.4 kB","ghwatchers":"27","ghforks":"7","xmlEncodedName":"observer"},{"name":"almy.js","tags":["state","state-management","centralized","management"],"description":"Fast & simple centralized state management library","url":"https://github.com/tomas2387/almy","size":"0.4 kB","ghwatchers":"6","ghforks":"0"},{"name":"BottleJS","tags":["dependency injection","dependency","injection","ioc","di","provider"],"description":"A powerful, extensible dependency injection micro container.","url":"https://github.com/young-steveo/bottlejs","size":"1.7 kB","ghwatchers":"960","ghforks":"56","xmlEncodedName":"BottleJS"},{"name":"LazyLoad","tags":["loader"],"description":"Async JavaScript and CSS loader.","url":"https://github.com/rgrove/lazyload","size":"1 kB","ghwatchers":"1,331","ghforks":"293","xmlEncodedName":"LazyLoad"},{"name":"SUL.js","tags":["dom","lightweight","shorthand","ajax"],"description":"Small library for DOM and AJAX operations (jQuery function style).","url":"https://github.com/MrOnlineCoder/sul.js","size":"1.2 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"SUL.js"},{"name":"Valentine","tags":["functional","language","data"],"description":"JavaScripts functional sister providing iterators, type checking, and basic utils","url":"https://github.com/ded/valentine","size":"2.1 kB","ghwatchers":"291","ghforks":"21","xmlEncodedName":"Valentine"},{"name":"TurtleWax","tags":["canvas","graphics"],"description":"LOGO-inspired canvas drawing lib, adds method chaining and polar coordinates for added fun.","url":"https://github.com/davebalmer/turtlewax","size":"0.7 kB","ghwatchers":"96","ghforks":"19","xmlEncodedName":"TurtleWax"},{"name":"mom","tags":["dependency","injection","module","loader","event bus","eventBus"],"description":"Dynamic Loading of Javascript based on DOM elements.","url":"http://mom.js.org","size":"3.3 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"mom"},{"name":"picoCSS","tags":["CSS","CSS3","mobile"],"description":"Basic CSS DOM manipulation and animation optimized for webkit browsers(Safari, Chrome) for building mobile web apps","url":"https://github.com/vladocar/picoCSS","size":"0.3 kB","ghwatchers":"49","ghforks":"9","xmlEncodedName":"picoCSS"},{"name":"H5F.js","tags":["polyfill"],"description":"Adds support for HTML5 Forms chapters new field input types, attributes and constraint validation API in non-supporting browsers.","url":"https://github.com/ryanseddon/H5F","size":"2 kB","ghwatchers":"768","ghforks":"122","xmlEncodedName":"H5F.js"},{"name":"EventEmitter","tags":["events"],"description":"Evented JavaScript for the browser","url":"https://github.com/Olical/EventEmitter","size":"1 kB","ghwatchers":"2,643","ghforks":"331","xmlEncodedName":"EventEmitter"},{"name":"Fermata","tags":["ajax"],"description":"Succinct native REST client, for client-side web apps and node.js. Turns URLs into magic JavaScript objects.","url":"https://github.com/natevw/fermata","size":"3 kB","ghwatchers":"329","ghforks":"27","xmlEncodedName":"Fermata"},{"name":"Base64.js","tags":["polyfill"],"description":"`window.btoa` and `window.atob` for browsers which don't provide these functions.","url":"https://github.com/davidchambers/Base64.js","size":"0.5 kB","ghwatchers":"334","ghforks":"80","xmlEncodedName":"Base64.js"},{"name":"GamepadMicro","tags":["gamepad","html5"],"description":"Micro library that interfaces with the HTML5 Gamepad API and publishes gamepad update events.","url":"https://github.com/likethemammal/gamepad-micro/","size":"1.9 kB","ghwatchers":"23","ghforks":"2","xmlEncodedName":"GamepadMicro"},{"name":"nimble","tags":["functional","async"],"description":"Functional flow-control for JavaScript. Combines features of the underscore and async libraries.","url":"http://caolan.github.io/nimble/","size":"0.8 kB","xmlEncodedName":"nimble"},{"name":"Events.js","tags":["events","dom"],"description":"Cross-browser DOM events, with keystroke handling, hashchange, mouseenter/leave.","url":"https://github.com/kbjr/Events.js","size":"4.1 kB","ghwatchers":"138","ghforks":"17","xmlEncodedName":"Events.js"},{"name":"JS-Signals","tags":["events"],"description":"Custom Event/Messaging system for JavaScript.","url":"http://millermedeiros.github.io/js-signals/","size":"1.1 kB","xmlEncodedName":"JS-Signals"},{"name":"Crossroads.js","tags":["route","events","spa"],"description":"Powerful JavaScript URL routing/dispatch for server-side and client-side applications.","url":"http://millermedeiros.github.io/crossroads.js/","size":"2.8 kB","xmlEncodedName":"Crossroads.js"},{"name":"Hasher","tags":["spa"],"description":"Browser history manager for rich-media applications.","url":"https://github.com/millermedeiros/Hasher","size":"1.2 kB","ghwatchers":"494","ghforks":"87","xmlEncodedName":"Hasher"},{"name":"Satisfy","tags":["html","css","selector"],"description":"CSS Selector to HTML generator.","url":"https://github.com/padolsey/satisfy","size":"1 kB","ghwatchers":"191","ghforks":"15","xmlEncodedName":"Satisfy"},{"name":"jaylist","tags":["functional","extend","data"],"description":"A simple wrapper for JavaScript's built-in hash storage.","url":"http://benbscholz.github.io/jaylist","size":"0.8 kB","xmlEncodedName":"jaylist"},{"name":"LeviRoutes","tags":["history","route","spa"],"description":"A basic routes framework for JS that hooks in to HTML5 history","url":"http://leviroutes.com","size":"0.7 kB","xmlEncodedName":"LeviRoutes"},{"name":"FormfactorJS","tags":["formfactor","loader"],"description":"A formfactor detection library, to help developers target tablet, tvs, desktops and handhelds (or anything you choose)","url":"http://formfactorjs.com","size":"1.3 kB","xmlEncodedName":"FormfactorJS"},{"name":"Augment.js","tags":["polyfill"],"description":"Enables use of modern JavaScript by augmenting built in objects with the latest JavaScript methods.","url":"http://augmentjs.com","size":"1.4 kB","ghwatchers":"427","ghforks":"26","xmlEncodedName":"Augment.js"},{"name":"thumbs.js","tags":["polyfill"],"description":"Add touch event support to the desktop and other mouse-based browsers.","url":"http://mwbrooks.github.io/thumbs.js/","size":"0.4 kB","xmlEncodedName":"thumbs.js"},{"name":"pathparser.js","tags":["route","routing","query","parameters"],"description":"Tiny, simple-to-use URL parser/router","url":"https://github.com/dstillman/pathparser.js","size":"0.6 kB","ghwatchers":"58","ghforks":"12","xmlEncodedName":"pathparser.js"},{"name":"domchanger","tags":["dom","ui","reactive"],"description":"Domchanger calculates diffs between virtual dom trees (JSONML) and applies only the difference to the dom","url":"https://github.com/creationix/domchanger","size":"2 kB","ghwatchers":"62","ghforks":"14","xmlEncodedName":"domchanger"},{"name":"onfontload","tags":["font","load","webfont","font-face","FOUT"],"description":"Detects when fonts are loaded.","url":"https://github.com/eduardomb/onfontload","ghwatchers":"2","ghforks":"0","size":"1 kB","xmlEncodedName":"onfontload"},{"name":"msgpack-js","tags":["msgpack","json","format","encoder","decoder"],"description":"A msgpack encoder and decoder using ArrayBuffer and DataView","url":"https://github.com/creationix/msgpack-js-browser","size":"2 kB","ghwatchers":"89","ghforks":"25","xmlEncodedName":"msgpack-js"},{"name":"lscache","tags":["data","storage"],"description":"A localStorage-based memcache-inspired client-side caching library.","url":"https://github.com/pamelafox/lscache","size":"1.1 kB","ghwatchers":"1,149","ghforks":"155","xmlEncodedName":"lscache"},{"name":"imagine","tags":["loader","async"],"description":"An image (pre)loader with promises","url":"https://github.com/pyrsmk/imagine","size":"0.4 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"imagine"},{"name":"panorama","tags":["canvas","responsive"],"description":"Lighten background images with Canvas2D","url":"https://github.com/pyrsmk/panorama","size":"0.7 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"panorama"},{"name":"CSSTemplate","tags":["css","templates","global","client","browser","util"],"description":"Inject and update dynamic CSS using simple js templating","url":"https://github.com/ezakto/CSSTemplate.js","size":"0.2 kB","ghwatchers":"13","ghforks":"2","xmlEncodedName":"CSSTemplate"},{"name":"ClassIE","tags":["feature"],"description":"ClassIE is an unobstrusive library which detects Internet Explorer version for JS and CSS sides","url":"https://github.com/pyrsmk/ClassIE","size":"0.2 kB","ghwatchers":"20","ghforks":"1","xmlEncodedName":"ClassIE"},{"name":"Sheethub","tags":["polyfill"],"description":"A CSS backdoor API for providing awesome scripts in a centralized way","url":"https://github.com/pyrsmk/Sheethub","size":"0.8 kB","ghwatchers":"24","ghforks":"5","xmlEncodedName":"Sheethub"},{"name":"nut","tags":["css"],"description":"A concise CSS selector engine","url":"https://github.com/pyrsmk/nut","size":"0.5 kB","ghwatchers":"25","ghforks":"3","xmlEncodedName":"nut"},{"name":"molt","tags":["responsive"],"description":"Image updater for responsive designs","url":"https://github.com/pyrsmk/molt","size":"1 kB","ghwatchers":"51","ghforks":"6","xmlEncodedName":"molt"},{"name":"W","tags":["responsive"],"description":"Width management tool for responsive designers","url":"https://github.com/pyrsmk/W","size":"0.6 kB","ghwatchers":"117","ghforks":"13","xmlEncodedName":"W"},{"name":"toast","tags":["loader"],"description":"A simple CSS and JS resource loader","url":"https://github.com/pyrsmk/toast","size":"0.6 kB","ghwatchers":"107","ghforks":"17","xmlEncodedName":"toast"},{"name":"mediatizr","tags":["polyfill","responsive"],"description":"A media queries polyfill","url":"https://github.com/pyrsmk/mediatizr","size":"0.6 kB","ghwatchers":"37","ghforks":"12","xmlEncodedName":"mediatizr"},{"name":"qwest","tags":["ajax","async"],"description":"Ajax library with promises and XHR2 support","url":"https://github.com/pyrsmk/qwest","size":"2.2 kB","ghwatchers":"714","ghforks":"85","xmlEncodedName":"qwest"},{"name":"quark","tags":["base","compose"],"description":"Build your own framework from scratch","url":"https://github.com/pyrsmk/quark","size":"0.8 kB","ghwatchers":"16","ghforks":"3","xmlEncodedName":"quark"},{"name":"earley-parser-js","tags":["parsing","context-free grammar","earley parser","natural language processing","nlp","parse tree"],"description":"General purpose context-free languages parser - Earley parser","url":"https://github.com/lagodiuk/earley-parser-js","size":"1.6 kB","ghwatchers":"59","ghforks":"6","xmlEncodedName":"earley-parser-js"},{"name":"Jaml","tags":["templating"],"description":"Jaml tries to emulate Ruby's Haml library, making it easy to generate HTML in your JavaScript projects.","url":"http://edspencer.github.io/jaml/","size":"1.2 kB","xmlEncodedName":"Jaml"},{"name":"Async GA","tags":["analytics"],"description":"Reduced Google's original analytics snippet by one third, with better performance.","url":"http://mathiasbynens.be/notes/async-analytics-snippet","size":"0.2 kB","xmlEncodedName":"Async GA"},{"name":"Metamorph.js","tags":["string","HTML","DOM"],"description":"Metamorph.js is a library that allows you to create a string of HTML, insert it into the DOM, and update the contents later.","url":"https://github.com/tomhuda/metamorph.js","size":"1.6 kB","ghwatchers":"260","ghforks":"28","xmlEncodedName":"Metamorph.js"},{"name":"Morpheus","tags":["animation","jsanimation","color"],"description":"An animator that lets you tween in parallel on multiple elements, from integers to colors in a single high-performant loop","url":"https://github.com/ded/morpheus","size":"2.3 kB","ghwatchers":"503","ghforks":"58","xmlEncodedName":"Morpheus"},{"name":"microjungle","tags":["templating"],"description":"very simple and powerful client-side HTML via JSON templating engine.","url":"https://github.com/deepsweet/microjungle","size":"0.4 kB","ghwatchers":"87","ghforks":"7","xmlEncodedName":"microjungle"},{"name":"Soundbox","tags":["sound","audio","play","media"],"description":"A super simple JS library for playing sound effects","url":"https://github.com/sbrl/soundbox","size":"0.5 kB","ghwatchers":"20","ghforks":"2","xmlEncodedName":"Soundbox"},{"name":"Optiscroll","tags":["scroll","ui","event","touch","scrollbar"],"description":"Custom scrollbars for modern webapps. Supercharge the native scroll","url":"https://github.com/albertogasparin/Optiscroll","size":"3.7 kB","ghwatchers":"180","ghforks":"24","xmlEncodedName":"Optiscroll"},{"name":"topbar","tags":["ui","progress","bar","loading","side-wide"],"description":"Tiny and beautiful site-wide progress indicator","url":"http://buunguyen.github.io/topbar/","size":"1.1 kB","xmlEncodedName":"topbar"},{"name":"HTMLparser","tags":["html","dom","manipulation","json","parser","htmlparser"],"description":"It parses HTML ¯\\_(ツ)_/¯","url":"https://github.com/ogewan/HTMLparser","size":"0.7 kB","ghwatchers":"7","ghforks":"3","xmlEncodedName":"HTMLparser"},{"name":"rounding.js","tags":["numeric","algorithm"],"description":"Exact rounding with a choice of rounding algorithms","url":"https://github.com/top-quark/rounding.js","size":"1.1 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"rounding.js"},{"name":"extnd","tags":["class","inheritance","multiple","super","extend"],"description":"Class system with clean implementation and multiple inheritance","url":"https://github.com/DominicTobias/extnd","size":"0.5 kB","ghwatchers":"12","ghforks":"5","xmlEncodedName":"extnd"},{"name":"Janis","tags":["animation","ui","transitions"],"description":"A simple CSS Transitions animation framework","url":"http://mikemctiernan.github.io/Janis/","size":"1.4 kB","xmlEncodedName":"Janis"},{"name":"System.js","tags":["feature"],"description":"Generates a JavaScript object with the user's system information.","url":"https://github.com/mrdoob/system.js","size":"0.6 kB","ghwatchers":"194","ghforks":"37","xmlEncodedName":"System.js"},{"name":"Platform.js","tags":["feature"],"description":"A platform detection library that works on nearly all JavaScript platforms.","url":"https://github.com/bestiejs/platform.js","size":"5.6 kB","ghwatchers":"2,244","ghforks":"291","xmlEncodedName":"Platform.js"},{"name":"Hypher","tags":["hyphenation"],"description":"Fast and small hyphenation engine for Node.js and the browser","url":"https://github.com/bramstein/Hypher","size":"1.6 kB","ghwatchers":"485","ghforks":"49","xmlEncodedName":"Hypher"},{"name":"tinyJS","tags":["base","css","functional"],"description":"A tiny yet complete toolkit","url":"http://tinyjs.sourceforge.net/tiny.js","size":"3.4 kB","xmlEncodedName":"tinyJS"},{"name":"Speedball","tags":["di","ioc","dependency injection","inversion of control"],"description":"A flexible dependency injection library","url":"https://github.com/cameron-martin/speedball","size":"1 kB","ghwatchers":"4","ghforks":"1","xmlEncodedName":"Speedball"},{"name":"micro-selector","tags":["css"],"description":"A micro, super fast, scope limited, javascript selector engine to be used anywhere","url":"https://github.com/fabiomcosta/micro-selector","size":"0.7 kB","ghwatchers":"59","ghforks":"7","xmlEncodedName":"micro-selector"},{"name":"Obscura","tags":["canvas","image","manipulation"],"description":"Canvas based image manipulation library","url":"https://github.com/OiNutter/Obscura","size":"1.5 kB","ghwatchers":"68","ghforks":"7","xmlEncodedName":"Obscura"},{"name":"Include.js","tags":["loader"],"description":"A tiny and AMD javascript loader with nested dependencies.","url":"http://capmousse.github.io/include.js/","size":"1.3 kB","xmlEncodedName":"Include.js"},{"name":"asEvented","tags":["events","functional"],"description":"Micro event emitter which provides the observer pattern to JavaScript objects.","url":"https://github.com/mkuklis/asEvented","size":"0.5 kB","ghwatchers":"95","ghforks":"16","xmlEncodedName":"asEvented"},{"name":"Keymaster","tags":["events"],"description":"Define scoped keyboard shortcuts, including modifier keys.","url":"https://github.com/madrobby/keymaster","size":"1.5 kB","ghwatchers":"6,187","ghforks":"444","xmlEncodedName":"Keymaster"},{"name":"Date-Utils","tags":["date","polyfill"],"description":"Lightweight Date Polyfill with a lot of flexibility.","url":"https://github.com/JerrySievert/date-utils","size":"4.2 kB","ghwatchers":"365","ghforks":"62","xmlEncodedName":"Date-Utils"},{"name":"youarei.js","tags":["client","server","util","parser","uri","url","query","parameters","queryparams"],"description":"URL parsing library with sane parameter handling","url":"https://github.com/purge/youarei.js","size":"1.4 kB","ghwatchers":"35","ghforks":"1","xmlEncodedName":"youarei.js"},{"name":"typogr.js","tags":["dom","data","css","text","ui","typography","hyphenation"],"description":"Provides ransformations to plain text for typographically-improved HTML.","url":"https://github.com/ekalinin/typogr.js","size":"1.9 kB","ghwatchers":"270","ghforks":"21","xmlEncodedName":"typogr.js"},{"name":"jundo","tags":["undo","redo","history"],"description":"Undo library for browser and Node","url":"https://github.com/buunguyen/jundo","size":"0.4 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"jundo"},{"name":"Maddy","tags":["functional","language","data"],"description":"A functional object operations library.","url":"http://bestiejs.github.io/maddy","size":"2.3 kB","ghwatchers":"63","ghforks":"4","xmlEncodedName":"Maddy"},{"name":"wru","tags":["testing"],"description":"essential unit test framework compatible with browsers, node.js, and Rhino","url":"https://github.com/WebReflection/wru","size":"1.5 kB","ghwatchers":"96","ghforks":"6","xmlEncodedName":"wru"},{"name":"Unlimit","tags":["functional","language"],"description":"Allows for chaining with native JavaScript objects without extending objects' prototypes.","url":"http://limeblack.github.io/UnlimitJS/","size":"0.4 kB","xmlEncodedName":"Unlimit"},{"name":"audio-fx","tags":["audio","games"],"description":"A HTML5 Audio Library","url":"https://github.com/jakesgordon/javascript-audio-fx","size":"0.6 kB","ghwatchers":"106","ghforks":"25","xmlEncodedName":"audio-fx"},{"name":"swipe","tags":["jsanimation","mobile"],"description":"A lightweight 1-to-1 mobile slider. Optimized for touch devices.","url":"https://github.com/thebird/Swipe","size":"1.9 kB","ghwatchers":"6,773","ghforks":"1,822","xmlEncodedName":"swipe"},{"name":"Happen","tags":["events"],"description":"General purpose event triggering","url":"https://github.com/tmcw/happen","size":"0.8 kB","ghwatchers":"103","ghforks":"14","xmlEncodedName":"Happen"},{"name":"zest","tags":["css","selector","dom"],"description":"An absurdly fast selector engine. Supports CSS3/CSS4 selectors - faster than Sizzle.","url":"https://github.com/chjj/zest","size":"3.5 kB","ghwatchers":"236","ghforks":"15","xmlEncodedName":"zest"},{"name":"Peppermint","tags":["mobile","slider","touch","carousel","slideshow"],"description":"Yet another touch slider. Fast, lightweight, extensible, works on everything.","url":"https://github.com/wilddeer/Peppermint","size":"2.7 kB","ghwatchers":"203","ghforks":"32","xmlEncodedName":"Peppermint"},{"name":"BabelBox","tags":["i18n","translation","multilingual","language","internationalization","amd"],"description":"i18n library that allows users to easily support multiple languages and requirejs support","url":"http://javascript-kurse-berlin.de/labs/babelbox.html","size":"1.1 kB","xmlEncodedName":"BabelBox"},{"name":"hsi.js","tags":["color"],"description":"A small RGB <-> HSI converter.","url":"https://github.com/e-/hsi.js","size":"0.5 kB","ghwatchers":"10","ghforks":"4","xmlEncodedName":"hsi.js"},{"name":"jacks","tags":["ajax","xhr","rest","fluent","XMLHttpRequest"],"description":"Fluent, extensible, easy-to-use ajax Framework.","url":"http://jccazeaux.github.io/jacks/","size":"1.8 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"jacks"},{"name":"colorspaces.js","tags":["color"],"description":"Convert between RGB and several CIE color spaces for smarter color manipulation.","url":"http://boronine.github.io/colorspaces.js","size":"1.6 kB","xmlEncodedName":"colorspaces.js"},{"name":"tinyOSF.js","tags":["osf","markup","parser","html","shownotes","mp4chaps","podcast"],"description":"a few lines of code to convert OSF to HTML.","url":"https://github.com/simonwaldherr/tinyOSF.js","size":"3.1 kB","ghwatchers":"3","ghforks":"0","xmlEncodedName":"tinyOSF.js"},{"name":"crel","tags":["DOM"],"description":"A simple and fast DOM creation utility","url":"https://github.com/KoryNunn/crel","size":"0.4 kB","ghwatchers":"324","ghforks":"37","xmlEncodedName":"crel"},{"name":"mathmethods","tags":["math","language","sugar"],"description":"Give `Number.prototype` the `Math` methods it deserves.","url":"https://github.com/davidchambers/mathmethods","size":"0.5 kB","ghwatchers":"16","ghforks":"4","xmlEncodedName":"mathmethods"},{"name":"uuid-v4.js","tags":["random","uuid","data","browser","commonjs","node"],"description":"RFC-4122 Compliant Random (v4) UUID Generator","url":"https://github.com/makeable/uuid-v4.js","size":"0.2 kB","ghwatchers":"65","ghforks":"8","xmlEncodedName":"uuid-v4.js"},{"name":"notificon.js","tags":["notification","alert","browser","canvas","tab"],"description":"Dynamic tab favicon notifications/alerts","url":"https://github.com/makeable/Notificon","size":"0.9 kB","ghwatchers":"938","ghforks":"44","xmlEncodedName":"notificon.js"},{"name":"mini-signals","tags":["events","signals","fast"],"description":"signals, in JavaScript, fast","url":"https://github.com/Hypercubed/mini-signals","size":"1.1 kB","ghwatchers":"82","ghforks":"8","xmlEncodedName":"mini-signals"},{"name":"html5tooltips.js","tags":["ui","tooltips","hints","html5","css3","animation"],"description":"Light and clean tooltips with CSS3 animation","url":"http://ytiurin.github.io/html5tooltipsjs/","size":"3.4 kB","ghwatchers":"839","ghforks":"85","xmlEncodedName":"html5tooltips.js"},{"name":"SpeculOOs","tags":["language","class"],"description":"Simple JavaScript Class notation, fully CoffeeScript compliant","url":"https://github.com/k33g/speculoos","size":"0.3 kB","ghwatchers":"14","ghforks":"2","xmlEncodedName":"SpeculOOs"},{"name":"aug","tags":["extend","augment"],"description":"A object extend utility","url":"https://github.com/firstandthird/aug","size":"0.3 kB","ghwatchers":"17","ghforks":"5","xmlEncodedName":"aug"},{"name":"path.js","tags":["route"],"description":"Simple, lightweight routing for web browsers","url":"http://mtrpcic.github.io/pathjs/","size":"1.1 kB","xmlEncodedName":"path.js"},{"name":"scaleApp.js","tags":["spa","base","events","node","pubsub","async","flow","flow control"],"description":"scaleApp is a tiny JavaScript framework for scalable one-page-applications","url":"http://scaleapp.org/","size":"3.1 kB","ghwatchers":"349","ghforks":"52","xmlEncodedName":"scaleApp.js"},{"name":"Choona.js","tags":["pubsub","modular","scalable","sandbox","spa","architecture"],"description":"Choona.js is a tiny JavaScript framework for scalable , modular architecture for one-page-applications","url":"https://github.com/nsisodiya/choona.js","size":"2.8 kB","ghwatchers":"13","ghforks":"6","xmlEncodedName":"Choona.js"},{"name":"Impetus.js","tags":["momentum","touch","mouse","mobile"],"description":"Add momentum to anything. It's like iScroll, except not for scrolling. Supports mouse and touch events.","url":"http://chrisbateman.github.io/impetus","size":"1.6 kB","ghwatchers":"309","ghforks":"57","xmlEncodedName":"Impetus.js"},{"name":"seedrandom.js","tags":["random","RNG","PRNG"],"description":"A seeded random number generator. Can override Math.random or return a generator function.","url":"https://github.com/davidbau/seedrandom","size":"0.9 kB","ghwatchers":"1,035","ghforks":"95","xmlEncodedName":"seedrandom.js"},{"name":"Humane JS","tags":["notification","alert"],"description":"A simple, modern, browser notification system","url":"http://wavded.github.io/humane-js/","size":"1.5 kB","xmlEncodedName":"Humane JS"},{"name":"JSFace","tags":["oop","language","commonjs","node","class"],"description":"Small, fast, elegant, powerful, and cross platform OOP library. Support singleton, super call, private, mixins, plugins, AOP and more.","url":"https://github.com/tnhu/jsface","size":"1.1 kB","ghwatchers":"302","ghforks":"43","xmlEncodedName":"JSFace"},{"name":"Radio.js","tags":["events","pubsub"],"description":"Chainable publish/subscribe framework","url":"http://radio.uxder.com","size":"0.5 kB","xmlEncodedName":"Radio.js"},{"name":"draggable.js","tags":["dom","css","css3","amd"],"description":"Make your dom elements draggable easily.","url":"http://gtramontina.github.io/draggable.js/","size":"1.1 kB","xmlEncodedName":"draggable.js"},{"name":"T-Lite","tags":["templating"],"description":"A lite but powerfull javascript template engine","url":"https://github.com/CapMousse/T-Lite","size":"0.5 kB","ghwatchers":"22","ghforks":"6","xmlEncodedName":"T-Lite"},{"name":"Callbacks.js","tags":["events","dispatcher","static","callbacks"],"url":"https://github.com/dperrymorrow/callbacks.js","description":"Event dispatching, can be used either as static or instance based.","size":"0.3 kB","ghwatchers":"21","ghforks":"5","xmlEncodedName":"Callbacks.js"},{"name":"crate.js","tags":["modal","popover"],"description":"A modal creation library with a multitude of configuration options. Customizable html, colors, closable actions, on open and/or on closing functions, or just give it a body!","url":"https://github.com/Galavantier/crate.js","size":"1.4 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"crate.js"},{"name":"ancestry.js","tags":["class","extend","commonjs","amd"],"description":"Simple, yet powerful inheritance library to make polymorphism and super-constructors work propertly.","url":"https://github.com/jasonwyatt/ancestry.js","size":"0.4 kB","ghwatchers":"15","ghforks":"0","xmlEncodedName":"ancestry.js"},{"name":"ytIframe.js","tags":["youtube","iframe","video"],"description":"A flexible, plain javascript youtube video embedding script in less than 40 lines.","url":"https://github.com/mdix/ytIframe","size":"0.4 kB","ghwatchers":"21","ghforks":"2","xmlEncodedName":"ytIframe.js"},{"name":"Telegraph","tags":["events"],"description":"A very minimal event emitter for browsers, forked from Benjamin Thomas' smokesignals.js, that allows for cancelable events","url":"https://github.com/dubrowgn/telegraph","size":"0.3 kB","ghwatchers":"12","ghforks":"1","xmlEncodedName":"Telegraph"},{"name":"List.js","tags":["list","extend","templating","utils","sort","search","filter"],"description":"Add search, sort and flexibility to plain HTML lists (div, ul, table, everything!).","url":"http://listjs.com","size":"5.9 kB","xmlEncodedName":"List.js"},{"name":"ppo","tags":["utils","tool","util"],"description":"ppo is a super small and useful utils library for JavaScript ","url":"https://a-jie.github.io/ppo/","size":"3 kB","xmlEncodedName":"ppo"},{"name":"Mediator.js","tags":["utils","pubsub","notifications","events","async","callbacks"],"description":"Flexible pubsub-ish framework for handling namespaced events.","url":"http://www.thejacklawson.com/Mediator.js","size":"1.3 kB","xmlEncodedName":"Mediator.js"},{"name":"doT.js","tags":["nodejs","browsers","templating","partials","custom delimiters"],"description":"The fastest + concise javascript template engine for nodejs and browsers. Partials, custom delimiters and more.","url":"https://github.com/olado/doT","size":"1.5 kB","ghwatchers":"4,126","ghforks":"907","xmlEncodedName":"doT.js"},{"name":"Stapes.js","tags":["mvc","class","events","mobile"],"description":"A (really) tiny Javascript MVC microframework. Perfect for mobile.","url":"http://hay.github.io/stapes/","size":"2.1 kB","xmlEncodedName":"Stapes.js"},{"name":"Smoke Signals","tags":["events"],"description":"Really, really lightweight event emitting","url":"https://bitbucket.org/bentomas/smokesignals.js","size":"0.2 kB","xmlEncodedName":"Smoke Signals"},{"name":"CSSClass","tags":["css"],"description":"Adds the functions .hasClass, .addClass, .removeClass and .toggleClass to the Element prototype.","url":"https://github.com/EarMaster/CSSClass","size":"0.5 kB","ghwatchers":"80","ghforks":"11","xmlEncodedName":"CSSClass"},{"name":"Jwerty","tags":["events"],"description":"Bind, fire and assert on keyboard events, with easy to use keyboard selector combos","url":"https://github.com/keithamus/jwerty","size":"1.8 kB","ghwatchers":"1,216","ghforks":"120","xmlEncodedName":"Jwerty"},{"name":"konami.js","tags":["events","input","bind","keypress","hotkeys","keyboard","shortcuts"],"description":"logs every keypress and store it for later","url":"https://github.com/SimonWaldherr/konami.js","size":"0.8 kB","ghwatchers":"34","ghforks":"3","xmlEncodedName":"konami.js"},{"name":"filesize.js","tags":["math","language","amd"],"description":"JavaScript library to generate a human readable String describing the filesize","url":"http://filesizejs.com","size":"0.9 kB","xmlEncodedName":"filesize.js"},{"name":"csv.js","tags":["csv","json","array","object","encode","transform"],"description":"Convert JSON, Arrays or Objects to CSV","url":"https://github.com/avoidwork/csv.js","size":"0.8 kB","ghwatchers":"63","ghforks":"7","xmlEncodedName":"csv.js"},{"name":"tiny-lru.js","tags":["LRU","cache"],"description":"Least Recently Used cache","url":"https://github.com/avoidwork/tiny-lru","size":"0.6 kB","ghwatchers":"43","ghforks":"4","xmlEncodedName":"tiny-lru.js"},{"name":"JSON 3","tags":["polyfill","json","amd"],"description":"A modern JSON implementation compatible with nearly all JavaScript platforms.","url":"http://bestiejs.github.io/json3","ghwatchers":"1,014","ghforks":"154","size":"3.3 kB","xmlEncodedName":"JSON 3"},{"name":"promise.js","tags":["async","promise","future","deffered","ajax"],"description":"Lightweight promises (or futures, or deffered). Includes AJAX REST functions.","url":"https://github.com/stackp/promisejs","size":"1 kB","ghwatchers":"448","ghforks":"123","xmlEncodedName":"promise.js"},{"name":"cookie.js","tags":["cookie.js","cookies","storage"],"description":"A small library that makes setting, getting and removing cookies really easy.","url":"https://github.com/florian/cookie.js","size":"1 kB","ghwatchers":"1,070","ghforks":"174","xmlEncodedName":"cookie.js"},{"name":"Ordering.js","tags":["sort","sorting","ordering","arrays"],"description":"Helper to build sorting functions for array.sort()","url":"https://github.com/bbaliguet/ordering","size":"0.4 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"Ordering.js"},{"name":"Byda.js","tags":["HTML5","imports","xhr","ajax","swapping"],"description":"HTML content swapping via HTML5 imports or XHR (Ajax).","url":"http://www.ericmcd.com/byda/","size":"1.7 kB","xmlEncodedName":"Byda.js"},{"name":"an.hour.ago","tags":["dates","times","language","sugar"],"description":"DSL for expressing and comparing dates and times","url":"https://github.com/davidchambers/an.hour.ago","size":"0.6 kB","ghwatchers":"71","ghforks":"4","xmlEncodedName":"an.hour.ago"},{"name":"JSDeferred","tags":["defered","asynchronous","callbacks"],"description":"Standalone and Compact asynchronous library in JavaScript.","url":"http://cho45.stfuawsc.com/jsdeferred/","size":"1.9 kB","xmlEncodedName":"JSDeferred"},{"name":"Riloadr","tags":["image","images","responsive","loader"],"description":"A cross-browser framework-independent responsive images loader. jQuery version available.","url":"https://github.com/tubalmartin/riloadr","size":"3.1 kB","ghwatchers":"673","ghforks":"45","xmlEncodedName":"Riloadr"},{"name":"Plates","tags":["templating"],"description":"Plates (short for templates) binds data to markup. Plates has NO special syntax. It works in the browser and in Node.js.","url":"https://github.com/flatiron/plates","size":"2.3 kB","ghwatchers":"814","ghforks":"65","xmlEncodedName":"Plates"},{"name":"Nonsense","tags":["data"],"description":"Generate repeatable random data","url":"https://github.com/jocafa/Nonsense","ghwatchers":"171","ghforks":"14","size":"3.7 kB","xmlEncodedName":"Nonsense"},{"name":"Dijon","tags":["IOC","dependency injection"],"description":"An IOC/DI framework in Javascript, inspired by Robotlegs and Swiftsuspenders","url":"https://github.com/creynders/dijon","size":"1 kB","ghwatchers":"70","ghforks":"6","xmlEncodedName":"Dijon"},{"name":"ua.js","tags":["feature"],"description":"A very small user-agent (browser) and device detection library.","url":"https://github.com/g13n/ua.js","size":"0.5 kB","ghwatchers":"89","ghforks":"20","xmlEncodedName":"ua.js"},{"name":"microtext.js","tags":["text utility"],"description":"A JavaScript utility for processing text.","url":"https://github.com/rodrigoalvesvieira/microtext.js/","size":"0.8 kB","ghwatchers":"59","ghforks":"6","xmlEncodedName":"microtext.js"},{"name":"lostorage.js","tags":["storage","localStorage","sessionStorage"],"description":"Client-side storage the way it should be - using the HTML5 localStorage API. lostorage.js allows you to save any kind of data.","url":"https://github.com/florian/xStore","size":"0.8 kB","ghwatchers":"230","ghforks":"35","xmlEncodedName":"lostorage.js"},{"name":"guggenheim.js","tags":["gallery","plugin","animation"],"description":"A framework agnostic, animated, gallery plugin","url":"https://github.com/OiNutter/guggenheim.js","size":"3.4 kB","ghwatchers":"91","ghforks":"18","xmlEncodedName":"guggenheim.js"},{"name":"jvent.js","tags":["events"],"description":"Event Emitter Class for the browser based on NodeJS EventEmitter","url":"https://github.com/pazguille/jvent","ghwatchers":"47","ghforks":"10","size":"0.5 kB","xmlEncodedName":"jvent.js"},{"name":"fader.js","url":"http://lukelex.github.io/fader.js/","tags":["animation"],"description":"A micro library to fade elements in and out.","size":"0.6 kB","ghwatchers":"19","ghforks":"9","xmlEncodedName":"fader.js"},{"name":"pubsub.js","tags":["events","pubsub","publish","subscribe","node","rhino","amd","commonjs","titanium"],"description":"A tiny, optimized, tested, standalone and robust pubsub implementation supporting different javascript environments","url":"https://github.com/federico-lox/pubsub.js","size":"0.4 kB","ghwatchers":"112","ghforks":"16","xmlEncodedName":"pubsub.js"},{"name":"pastafarian","tags":["statemachine","state","fsm","event","finite","state","machine"],"description":"A tiny event emitter-based finite state machine","url":"https://github.com/orbitbot/pastafarian","size":"0.5 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"pastafarian"},{"name":"Pjs","url":"https://github.com/jneen/pjs","tags":["class","inheritance"],"description":"A teensy class system. It's just prototypes, but without the nasty parts.","size":"0.3 kB","ghwatchers":"190","ghforks":"31","xmlEncodedName":"Pjs"},{"name":"l.js","tags":["loader"],"description":"Another Tiny js/css loader supporting aliases, ordered and parallel loading, callbacks ... ","url":"http://malko.github.io/l.js/","size":"0.9 kB","xmlEncodedName":"l.js"},{"name":"D.js","tags":["Promises","async","promises/A+"],"description":"A tiny implementation of the Promises/A+ spec for Node.js and the browser, with some extensions to the spec ","url":"http://malko.github.io/D.js/","size":"1.5 kB","xmlEncodedName":"D.js"},{"name":"Mousetrap","tags":["events"],"description":"A simple library for handling keyboard shortcuts in Javascript.","url":"http://craig.is/killing/mice","size":"2.2 kB","ghwatchers":"9,330","ghforks":"828","xmlEncodedName":"Mousetrap"},{"name":"Driftwood","tags":["logging","error","exception","log"],"description":"A simple library for logging and exception tracking in Javascript.","url":"https://github.com/mattkanwisher/driftwood.js","size":"4.1 kB","ghwatchers":"23","ghforks":"7","xmlEncodedName":"Driftwood"},{"name":"progress.js","tags":["progress","bar","progressbar"],"description":"A (animated) javascript progress bar without dependencies.","url":"https://github.com/mdix/progress.js","size":"0.6 kB","ghwatchers":"42","ghforks":"7","xmlEncodedName":"progress.js"},{"name":"shotgun.js","tags":["shotgun","events","error","observer","pubsub","publish","subscribe","node","unsubscribe"],"description":"Nestable custom events, trappable internal events, functional try/catch abstraction, unsubscribable unnamed functions.","url":"http://github.com/jgnewman/shotgun","size":"1.2 kB","ghwatchers":"25","ghforks":"7","xmlEncodedName":"shotgun.js"},{"name":"t.js","tags":["templating"],"description":"A tiny javascript templating framework in ~400 bytes gzipped.","url":"https://github.com/jasonmoo/t.js","size":"0.4 kB","ghwatchers":"791","ghforks":"86","xmlEncodedName":"t.js"},{"name":"displace.js","tags":["move","dom","drag","tiny","mouse","touch"],"description":"Minimal javascript library for creating movable DOM elements","url":"https://catc.github.io/displace","size":"1.4 kB","ghwatchers":"43","ghforks":"10","xmlEncodedName":"displace.js"},{"name":"statelet","tags":["events"],"description":"Little state objects","url":"https://github.com/joshwnj/statelet","size":"0.5 kB","ghwatchers":"27","ghforks":"4","xmlEncodedName":"statelet"},{"name":"Eev","tags":["emitter","events","event","listener","pubsub","trigger","observe"],"description":"A tiny, fast, zero-dependency event emitter (~500 bytes min + gzip)","url":"https://github.com/chrisdavies/eev","size":"0.5 kB","ghwatchers":"281","ghforks":"20","xmlEncodedName":"Eev"},{"name":"tiptext.js","tags":["ui","hints","html5","css3","animation","mutation observers","pretty","dom","tool tip","tooltip","tooltips","tool tips","floating tooltip","floating tool tips"],"description":"A floating tooltip function, using mutation observers. Has 6 customizable callbacks!","url":"https://github.com/agamemnus/tiptext.js","ghwatchers":"5","ghforks":"0","size":"2.1 kB","xmlEncodedName":"tiptext.js"},{"name":"guardian.js","tags":["testing","tdd","unit","bdd"],"description":"Unopinionated JavaScript (unit/integration/whatever) testing library","url":"https://github.com/guardianjs/guardianjs","size":"0.4 kB","ghwatchers":"18","ghforks":"0","xmlEncodedName":"guardian.js"},{"name":"delayed","tags":["async","timer","defer","events"],"description":"A collection of helper functions for your functions, using `setTimeout()` to delay and defer.","url":"https://github.com/rvagg/delayed","ghwatchers":"24","ghforks":"2","size":"0.4 kB","xmlEncodedName":"delayed"},{"name":"BigScreen","tags":["browser","canvas"],"description":"BigScreen is a simple library for using the JavaScript Full Screen API.","url":"http://brad.is/coding/BigScreen/","size":"1.6 kB","ghwatchers":"711","ghforks":"82","xmlEncodedName":"BigScreen"},{"name":"emitonoff","tags":["pubsub","event"],"description":"Extremely simple event emitter for javascript","url":"https://github.com/konsumer/emitonoff","size":"0.3 kB","ghwatchers":"31","ghforks":"3","xmlEncodedName":"emitonoff"},{"name":"Airwaves","tags":["pubsub","publish","subscribe","broadcast","message"],"description":"Lightweight pub/sub for any JavaScript environment","url":"https://github.com/davidchambers/airwaves","size":"0.8 kB","ghwatchers":"25","ghforks":"0","xmlEncodedName":"Airwaves"},{"name":"Stately.js","tags":["automata","finite","fsm","machine","state"],"description":"Stately.js is a JavaScript based finite-state machine (FSM) engine for Node.js and the browser.","url":"https://github.com/fschaefer/Stately.js","size":"0.9 kB","ghwatchers":"742","ghforks":"79","xmlEncodedName":"Stately.js"},{"name":"DOMtastic","tags":["DOM","events","selector","modern","modular","es6"],"description":"Small and fast DOM and event library for modern browsers. It has the same familiar API as jQuery, and is lean & mean with small, optional modules.","url":"https://domtastic.js.org","ghwatchers":"740","ghforks":"47","size":"4 kB","xmlEncodedName":"DOMtastic"},{"name":"Timer.js","tags":["interval","timeout","timer","periodic"],"description":"Timer.js is a periodic timer for Node.js and the browser.","url":"https://github.com/fschaefer/Timer.js","size":"0.8 kB","ghwatchers":"132","ghforks":"21","xmlEncodedName":"Timer.js"},{"name":"Lambda-30","tags":["lambda","function","expression","anonymous","literal","functional"],"description":"A Lambda String implementation for Node.js that supports some ES6 (...rest, ()=>{}, ()=>retval) and a built in JSON encoder.","url":"https://github.com/jdarling/lambda-30","size":"0.9 kB","ghwatchers":"0","ghforks":"0","xmlEncodedName":"Lambda-30"},{"name":"xxspubsub.js","tags":["pubsub"],"description":"Extra-extra-small publish/subscribe micro-library in JavaScript","url":"https://github.com/dciccale/xxspubsub","size":"0.2 kB","ghwatchers":"23","ghforks":"6","xmlEncodedName":"xxspubsub.js"},{"name":"big.js","tags":["big","number","bignumber","bigdecimal","biginteger","arbitrary","precision","decimal","arithmetic","math"],"description":"A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.","url":"https://github.com/MikeMcl/big.js/","size":"2.7 kB","ghwatchers":"2,048","ghforks":"222","xmlEncodedName":"big.js"},{"name":"PicoModal","tags":["modal","popup","message"],"description":"A self-contained modal popup library","url":"https://github.com/Nycto/PicoModal","size":"2.1 kB","ghwatchers":"214","ghforks":"35","xmlEncodedName":"PicoModal"},{"name":"microphone","tags":["html5","audio","microphone","signalprocessing","dsp","mic","sound"],"description":"Process live audio input in the browser","url":"https://github.com/srubin/microphone","size":"0.9 kB","ghwatchers":"11","ghforks":"2","xmlEncodedName":"microphone"},{"name":"time.js","tags":["time","parse","parsing","format","validate"],"description":"Date-agnostic time parsing for node and the browser.","url":"https://github.com/zackdever/time","size":"0.9 kB","ghwatchers":"42","ghforks":"7","xmlEncodedName":"time.js"},{"name":"MissMatch","tags":["pattern","matching","functional","object","json","query","decompose"],"description":"Pattern matching (like in Haskell or Scala) for JavaScript.","url":"https://github.com/pb82/MissMatch","size":"2.2 kB","ghwatchers":"63","ghforks":"2","xmlEncodedName":"MissMatch"},{"name":"Sleeper Agent","tags":["logging","logs"],"description":"Collect logs selectively from client instances on demand.","url":"https://github.com/kapilkaisare/sleeper-agent","size":"0.3 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"Sleeper Agent"},{"name":"Daemonize","tags":["unix","daemon"],"description":"Give a function a daemon like interface (start, stop, restart)","url":"https://github.com/kapilkaisare/daemonizejs","size":"0.4 kB","ghwatchers":"8","ghforks":"3","xmlEncodedName":"Daemonize"},{"name":"ajax","tags":["ajax","jquery"],"description":"Standalone AJAX library inspired by jQuery/zepto","url":"https://github.com/ForbesLindesay/ajax","size":"2 kB","ghwatchers":"350","ghforks":"195","xmlEncodedName":"ajax"},{"name":"page.js","tags":["page","page.js","router","routing","express","spa"],"description":"Tiny ~1200 byte Express-inspired client-side router.","url":"https://github.com/visionmedia/page.js","size":"3.9 kB","ghwatchers":"6,219","ghforks":"638","xmlEncodedName":"page.js"},{"name":"Gator","tags":["dom","events","delegation"],"description":"Simple event delegation library","url":"http://craig.is/riding/gators","size":"0.9 kB","ghwatchers":"487","ghforks":"43","xmlEncodedName":"Gator"},{"name":"keymage","tags":["events"],"description":"Keyboard shortcuts handling with support for key sequences.","url":"https://github.com/piranha/keymage","size":"1.6 kB","ghwatchers":"300","ghforks":"29","xmlEncodedName":"keymage"},{"name":"Chic","tags":["class","classes","extend","inheritance","oop","prototypal","prototype"],"description":"Chic is an extremely simple class-like interface to JavaScript prototypal inheritance.","url":"https://github.com/rowanmanning/chic","size":"0.4 kB","ghwatchers":"27","ghforks":"6","xmlEncodedName":"Chic"},{"name":"Perms","tags":["permissions","perms","ls","chmod","unix"],"description":"Convert Unix style permissions to strings like ls (0755 => 'rwxr-xr-x')","url":"https://github.com/bahamas10/node-perms","size":"0.3 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"Perms"},{"name":"range.js","tags":["range"],"description":"JavaScript's missing range function.","url":"https://github.com/florian/range.js","size":"0.5 kB","ghwatchers":"83","ghforks":"2","xmlEncodedName":"range.js"},{"name":"Strukt","tags":["utilities"],"description":"Ruby inspired Structs for JavaScript.","url":"https://github.com/florian/Strukt","size":"0.3 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"Strukt"},{"name":"ipsum.js","tags":["content","text","helper","tool","developer tool"],"description":"Increases / decreases text quantity inside inline elements by pressing keys to check if the design can cope with different text length.","url":"https://github.com/mdix/ipsum.js","size":"1.6 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"ipsum.js"},{"name":"preloadimages.js","tags":["preload","images","asset"],"description":"Preload images and callback when they are all ready","url":"https://github.com/bahamas10/preloadimages.js","size":"0.2 kB","ghwatchers":"40","ghforks":"4","xmlEncodedName":"preloadimages.js"},{"name":"Behave.js","tags":["ide","text","editor","behave","behaviors","code","ace","codemirror"],"description":"A lightweight, cross browser library for adding IDE style behaviors to plain text areas","url":"https://github.com/jakiestfu/Behave.js","size":"2.6 kB","ghwatchers":"1,715","ghforks":"108","xmlEncodedName":"Behave.js"},{"name":"Snap.js","tags":["snap","droor","drawer","shelf","mobile","ios","reveal","slide","drag","pane","back","panel","side","menu"],"description":"A Library for creating beautiful mobile shelfs in Javascript","url":"https://github.com/jakiestfu/Snap.js","size":"2.7 kB","ghwatchers":"6,062","ghforks":"724","xmlEncodedName":"Snap.js"},{"name":"enquire.js","tags":["matchMedia","mediaquery","mediaqueries","css3","css"],"description":"Awesome Media Queries in JavaScript","url":"https://github.com/WickyNilliams/enquire.js","size":"1.2 kB","ghwatchers":"3,470","ghforks":"273","xmlEncodedName":"enquire.js"},{"name":"ki.js","tags":["dom","selectors","traversing","library"],"description":"A super-tiny jQuery-like JavaScript library","url":"https://github.com/dciccale/ki.js","size":"0.3 kB","ghwatchers":"223","ghforks":"30","xmlEncodedName":"ki.js"},{"name":"Anim","tags":["css","animation"],"description":"A bare bones animation library","url":"https://github.com/relay-zz/anim","size":"1.5 kB","ghwatchers":"69","ghforks":"22","xmlEncodedName":"Anim"},{"name":"Check.js","tags":["type checking","verification","utility","library"],"description":"A tiny library for type and sanity checking","url":"https://github.com/Morklympious/check.js","size":"1.4 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"Check.js"},{"name":"promiscuous","tags":["promise","deferred","functional","async","future"],"description":"A minimal and fast promise/deferred implementation, compatible with Promises/A+","url":"https://github.com/RubenVerborgh/promiscuous","size":"0.5 kB","ghwatchers":"181","ghforks":"30","xmlEncodedName":"promiscuous"},{"name":"Draggabilly","tags":["drag","dragable","draggable"],"description":"Make that shiz draggable","url":"https://github.com/desandro/draggabilly","size":"1.8 kB","ghwatchers":"3,313","ghforks":"381","xmlEncodedName":"Draggabilly"},{"name":"PinkySwear.js","tags":["promises"],"description":"A tiny implementation of the Promises/A+ specification.","url":"https://github.com/timjansen/pinkyswear.js","size":"0.5 kB","ghwatchers":"88","ghforks":"11","xmlEncodedName":"PinkySwear.js"},{"name":"DCL.js","tags":["class","oop","aop","inheritance","object","compose"],"description":"An elegant OOP with mixins + AOP for JavaScript","url":"http://www.dcljs.org/","size":"3 kB","xmlEncodedName":"DCL.js"},{"name":"breakup.js","tags":["enumeration","setimmediate","enumerate","jquery","yield"],"description":"Yielding enumeration replacement functions for async.forEachSeries() and jQuery.each()","url":"https://github.com/nicjansma/breakup.js","size":"0.6 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"breakup.js"},{"name":"Barman","tags":["traits","oop","classes","objects","object composition"],"description":"A small library to brew JavaScript objects.","url":"https://github.com/dfernandez79/barman","size":"1.9 kB","ghwatchers":"16","ghforks":"1","xmlEncodedName":"Barman"},{"name":"smoothScroll.js","tags":["scroll","smooth"],"description":"A teeny tiny, ease-in-out, smooth scroll library with no dependency","url":"https://github.com/alicelieutier/smoothScroll","size":"0.7 kB","ghwatchers":"507","ghforks":"123","xmlEncodedName":"smoothScroll.js"},{"name":"strftime","tags":["strftime","format","date","time"],"description":"strftime for JavaScript. Works in Node and browsers.","url":"https://github.com/samsonjs/strftime","size":"3.3 kB","ghwatchers":"601","ghforks":"106","xmlEncodedName":"strftime"},{"name":"format","tags":["format","printf","sprintf","vsprintf","string"],"description":"printf, sprintf, and vsprintf for JavaScript. Works in Node and browsers.","url":"https://github.com/samsonjs/format","size":"0.6 kB","ghwatchers":"44","ghforks":"10","xmlEncodedName":"format"},{"name":"Proclaim","tags":["assert","test"],"description":"A simple assertion library for server and client side JavaScript.","url":"https://github.com/rowanmanning/proclaim","size":"2.1 kB","ghwatchers":"63","ghforks":"12","xmlEncodedName":"Proclaim"},{"name":"ColorConverter.js","tags":["color","color manipulation"],"description":"Convert between RGB, YUV, HSL, HSV, CMYK and HEX color defining with these JavaScript functions under MIT-License","url":"https://github.com/SimonWaldherr/ColorConverter.js","size":"1.6 kB","ghwatchers":"34","ghforks":"4","xmlEncodedName":"ColorConverter.js"},{"name":"PullToRefresh","tags":["webkit","mobile","scroll"],"description":"A dependency-free PullToRefresh implementation","url":"https://github.com/SimonWaldherr/PullToRefresh","size":"1.6 kB","ghwatchers":"56","ghforks":"11","xmlEncodedName":"PullToRefresh"},{"name":"infinity.js","tags":["ajax","scroll"],"description":"dependency-free infinite scrolling","url":"https://github.com/SimonWaldherr/infinity.js","size":"1.2 kB","ghwatchers":"42","ghforks":"4","xmlEncodedName":"infinity.js"},{"name":"Bespoke.js","tags":["presentation","slides","deck","css3"],"description":"DIY presentation micro-framework, harnessing the power of CSS3 transitions.","url":"https://github.com/bespokejs/bespoke","size":"0.8 kB","ghwatchers":"4,457","ghforks":"456","xmlEncodedName":"Bespoke.js"},{"name":"usertiming.js","tags":["usertiming","user timing","performance timeline","window.performance.now","mark","measure"],"description":"User Timing polyfill","url":"https://github.com/nicjansma/usertiming.js","size":"1.3 kB","ghwatchers":"176","ghforks":"21","xmlEncodedName":"usertiming.js"},{"name":"resourcetiming-compression.js","tags":["resourcetiming","compress"],"description":"ResourceTiming compression and decompression","url":"https://github.com/nicjansma/resourcetiming-compression.js","size":"3.8 kB","ghwatchers":"36","ghforks":"8","xmlEncodedName":"resourcetiming-compression.js"},{"name":"LogJS","tags":["logging","CORS","localStorage","DOM"],"description":"Lightweight, extendable JavaScript logging library.","url":"https://github.com/bfattori/LogJS","size":"0.8 kB","ghwatchers":"68","ghforks":"11","xmlEncodedName":"LogJS"},{"name":"StdClassJS","tags":["oop","class","extend","mixin"],"description":"A dead simple JavaScript inheritance implementation.","url":"https://github.com/ChrisAckerman/stdclassjs","size":"0.5 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"StdClassJS"},{"name":"keydrown","tags":["games"],"description":"A JavaScript key state handler for web apps","url":"https://github.com/jeremyckahn/keydrown","size":"1.2 kB","ghwatchers":"177","ghforks":"17","xmlEncodedName":"keydrown"},{"name":"vivi.js","tags":["animation","animate","css","css3","keyframe","defined"],"description":"Tiny wrapper for CSS Defined Animations (@keyframes).","url":"https://github.com/musictheory/vivi.js","size":"2.3 kB","ghwatchers":"33","ghforks":"2","xmlEncodedName":"vivi.js"},{"name":"salt.js","tags":["dom","selectors","traversing","library"],"description":"micro DOM selector library that maps queries to native get commands","url":"https://github.com/james2doyle/saltjs","size":"0.2 kB","ghwatchers":"130","ghforks":"14","xmlEncodedName":"salt.js"},{"name":"color.js","tags":["color","color manipulation"],"description":"API for immutable color objects in RGB, HSV and HSL with optional alpha. Comprehensive CSS format parsing and output.","url":"https://github.com/brehaut/color-js/","size":"4 kB","ghwatchers":"618","ghforks":"73","xmlEncodedName":"color.js"},{"name":"ScriptInclude","tags":["loader"],"description":"Simple includes in the browser.","url":"https://github.com/EvanHahn/ScriptInclude","size":"0.2 kB","ghwatchers":"43","ghforks":"5","xmlEncodedName":"ScriptInclude"},{"name":"cssanimevent","tags":["animation","css3","events","polyfill","transitions"],"description":"CSS3 animation and transition DOM event handler with a simple fallback pattern for unsupported browsers.","url":"https://github.com/magnetikonline/cssanimevent","size":"0.8 kB","ghwatchers":"90","ghforks":"9","xmlEncodedName":"cssanimevent"},{"name":"Hamster.js","tags":["mousewheel","mouse","wheel","events"],"description":"A standalone JavaScript library for cross-browser mouse wheel support.","url":"https://github.com/monospaced/hamster.js","size":"1 kB","ghwatchers":"147","ghforks":"29","xmlEncodedName":"Hamster.js"},{"name":"spin.js","tags":["spinning","indicator","loading","spinner"],"description":"A spinning activity indicator. An animated CSS3 loading spinner.","url":"http://fgnass.github.io/spin.js/","size":"1.3 kB","xmlEncodedName":"spin.js"},{"name":"Graph","tags":["traversing","graph"],"description":"Provides jQuery-like functionality for graph structures in JavaScript.","url":"https://github.com/ryansmith94/Graph","size":"0.5 kB","ghwatchers":"18","ghforks":"4","xmlEncodedName":"Graph"},{"name":"thenBy","tags":["sorting","sort","arrays"],"description":"Enable firstBy().thenBy().thenBy() sorting of arrays using the standard Array.sort","url":"https://github.com/Teun/thenBy.js","tinyminify":true,"size":"0.3 kB","ghwatchers":"447","ghforks":"58","xmlEncodedName":"thenBy"},{"name":"Scorebook","tags":["cricket","scoring"],"description":"A JavaScript library for cricket scoring.","url":"https://github.com/ryansmith94/Scorebook","size":"0.7 kB","ghwatchers":"24","ghforks":"8","xmlEncodedName":"Scorebook"},{"name":"Pledges","tags":["promise","pledge"],"description":"A JavaScript micro-library that provides promise functionality.","url":"https://github.com/ryansmith94/Pledges","size":"0.4 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"Pledges"},{"name":"chronology.js","tags":["undo","redo","history","chronology"],"description":"A micro javascript library for managing an undo/redo history.","url":"http://chronology.wout.co.uk","size":"0.5 kB","xmlEncodedName":"chronology.js"},{"name":"DoubleMetaphone","tags":["phonetic","metaphone","codec","sounds","like"],"description":"Phonetically encode w/ DoubleMetaphone algorithm ('Alexander' -> 'ALKS')","url":"https://github.com/hgoebl/doublemetaphone","size":"2.5 kB","ghwatchers":"22","ghforks":"5","xmlEncodedName":"DoubleMetaphone"},{"name":"Catiline","tags":["worker","parallel"],"description":"Web workers, but easy.","url":"http://catilinejs.com","size":"3.9 kB","xmlEncodedName":"Catiline"},{"name":"Vuvuzela","tags":["non-recursive","json","stringify","parse"],"description":"Non-recursive JSON.stringify and JSON.parse","url":"https://github.com/nolanlawson/vuvuzela","size":"1 kB","ghwatchers":"34","ghforks":"4","xmlEncodedName":"Vuvuzela"},{"name":"civem.js","tags":["html5","input","validation"],"description":"Custom error messages for HTML5 form validation.","url":"https://github.com/javanto/civem.js","size":"0.6 kB","ghwatchers":"103","ghforks":"20","xmlEncodedName":"civem.js"},{"name":"i18nText","tags":["i18n"],"description":"A JavaScript library for i18n text messages.","url":"https://bitbucket.org/vogdb/i18n-text","size":"1.4 kB","xmlEncodedName":"i18nText"},{"name":"canvas-manipulation","tags":["canvas"],"description":"Enable you canvas with zoom, drag and rotate functionality","url":"https://bitbucket.org/vogdb/canvas-manipulation","size":"1.7 kB","xmlEncodedName":"canvas-manipulation"},{"name":"RaptorJS","tags":["class","inheritance","extend","amd","prototype","prototypal","lazy"],"description":"The core module of RaptorJS provides a lightweight module system that supports namespacing, AMD, class inheritance, mixins, enums and lazy initialization. Works in the browser and Node.js","url":"https://github.com/raptorjs-legacy/raptorjs","size":"4.1 kB","ghwatchers":"94","ghforks":"12","xmlEncodedName":"RaptorJS"},{"name":"Lie","tags":["promise","deferred","async"],"description":"A very small library for promises","url":"https://github.com/calvinmetcalf/lie","size":"1.7 kB","ghwatchers":"671","ghforks":"56","xmlEncodedName":"Lie"},{"name":"assure.js","tags":["promises","promise","deferred","deferreds","aynchronous","async"],"description":"Promises/A+ micro library to help with asynchronous work flow.","url":"https://github.com/avoidwork/assure","size":"1.3 kB","ghwatchers":"16","ghforks":"5","xmlEncodedName":"assure.js"},{"name":"keysort","tags":["array","object","sort","keys","sql","where"],"description":"Sorts an Array of Objects with SQL ORDER BY clause","url":"https://github.com/avoidwork/keysort","size":"0.5 kB","ghwatchers":"10","ghforks":"1","xmlEncodedName":"keysort"},{"name":"klud.js","tags":["testing","unit test","assert","spy","mock"],"description":"A minimal unit testing library.","url":"https://bitbucket.org/zserge/klud.js/","size":"0.5 kB","xmlEncodedName":"klud.js"},{"name":"chronoman","tags":["setTimeout","setInterval","timer","timeout","management","utility"],"description":"Utility class to simplify use of timers created by setTimeout.","url":"https://github.com/gamtiq/chronoman","size":"1 kB","ghwatchers":"12","ghforks":"0","xmlEncodedName":"chronoman"},{"name":"basespace","tags":["namespace","ns","space","object"],"description":"Functions to create namespaces inside objects.","url":"https://github.com/gamtiq/basespace","size":"0.4 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"basespace"},{"name":"mixing","tags":["mix","merge","mixin","object","filter","change","copy","clone"],"description":"Functions to mix, filter, change and copy/clone objects.","url":"https://github.com/gamtiq/mixing","ghwatchers":"12","ghforks":"1","size":"1.4 kB","xmlEncodedName":"mixing"},{"name":"extend","tags":["extend","inherit","prototype","inheritance","class"],"description":"Make one class (constructor function) inherited from another.","url":"https://github.com/gamtiq/extend","size":"0.3 kB","ghwatchers":"10","ghforks":"3","xmlEncodedName":"extend"},{"name":"numgen","tags":["number","sequence","generator","progression","Fibonacci"],"description":"Creates objects that generate number sequences.","url":"https://github.com/gamtiq/numgen","size":"1.3 kB","ghwatchers":"5","ghforks":"1","xmlEncodedName":"numgen"},{"name":"duratiform","tags":["time","duration","divide","separate","decompose","format","millisecond"],"description":"Utility to separate into parts and to format time duration in milliseconds.","url":"https://github.com/gamtiq/duratiform","size":"0.7 kB","ghwatchers":"6","ghforks":"2","xmlEncodedName":"duratiform"},{"name":"eva","tags":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method"],"description":"Functions to create functions and evaluate expressions.","url":"https://github.com/gamtiq/eva","size":"0.8 kB","ghwatchers":"12","ghforks":"1","xmlEncodedName":"eva"},{"name":"adam","tags":["object","process","create","check","field","value","type","kind","size","split","filter","copy","change","map","remove","reverse","empty","transform"],"description":"Functions to create, process and test objects.","url":"https://github.com/gamtiq/adam","size":"2.1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"adam"},{"name":"teo","tags":["test","check","object","utility","filter","validate","data"],"description":"Functions to test/check objects.","url":"https://github.com/gamtiq/teo","size":"1 kB","ghwatchers":"9","ghforks":"0","xmlEncodedName":"teo"},{"name":"simple-slider","tags":["simple","carousel","slider","gallery","slideshow","javascript-carousel"],"description":"The 1kb JavaScript Carousel","url":"https://github.com/ruyadorno/simple-slider","size":"1.1 kB","ghwatchers":"516","ghforks":"56","xmlEncodedName":"simple-slider"},{"name":"easter.js","tags":["easter-egg","keys","sequence"],"description":"Easter eggs made easy.","url":"https://github.com/rkrupinski/easter.js","size":"0.6 kB","ghwatchers":"25","ghforks":"3","xmlEncodedName":"easter.js"},{"name":"overflow-color","tags":["overflow","color","DOM","css"],"description":"Automatically switch css html background color.","url":"https://github.com/dimitrinicolas/overflow-color","size":"1 kB","ghwatchers":"24","ghforks":"0","xmlEncodedName":"overflow-color"},{"name":"henka","tags":["responsive","respond","media","query","media-query","queries"],"description":"Light weight, portable, single purpose responsive javascript library.","url":"https://github.com/dmikey/henka","size":"0.9 kB","ghwatchers":"20","ghforks":"0","xmlEncodedName":"henka"},{"name":"rssi","tags":["interpolation","string","formatting","template","templating"],"description":"Ruby-like simple string interpolation for Node.js and browsers.","url":"https://github.com/mvasilkov/rssi","size":"0.3 kB","ghwatchers":"110","ghforks":"7","xmlEncodedName":"rssi"},{"name":"FastActive","tags":["events","mobile","touch"],"description":"FastActive is a javascript snippet that makes websites and web apps feel as responsive as native apps on touch devices.","url":"https://github.com/jonathanstark/FastActive","size":"0.2 kB","ghwatchers":"512","ghforks":"22","xmlEncodedName":"FastActive"},{"name":"JSONP","tags":["jsonp","asynchronous","async"],"description":"A slim JSONP request library for Javascript","url":"https://github.com/larryosborn/JSONP","size":"0.8 kB","ghwatchers":"76","ghforks":"20","xmlEncodedName":"JSONP"},{"name":"ResponsiveComments","tags":["responsive","rwd","conditional","loading","progressive","enhancement"],"description":"A client-side solution to conditional loading.","url":"http://responsivecomments.com/","size":"0.7 kB","xmlEncodedName":"ResponsiveComments"},{"name":"Sparklines","tags":["sparkline","sparklines","tiny","graph","line","spark","chart"],"description":"Create sparkline graphs inline with the text. Good defaults, easy to customize.","url":"https://github.com/mariusGundersen/sparkline","size":"1.3 kB","ghwatchers":"63","ghforks":"12","xmlEncodedName":"Sparklines"},{"name":"YoutubeDelayed.js","tags":["youtube","video","loader"],"description":"A a small script which allows you to load youtube player on page only when the user wants to watch the video.","url":"https://github.com/MAD-GooZe/YoutubeDelayed.js","size":"0.4 kB","ghwatchers":"23","ghforks":"1","xmlEncodedName":"YoutubeDelayed.js"},{"name":"Contra","tags":["async","asynchronous","flow","events","callbacks","queue"],"description":"Tiny asynchronous flow control library.","url":"https://github.com/bevacqua/contra","size":"2 kB","ghwatchers":"752","ghforks":"34","xmlEncodedName":"Contra"},{"name":"preloadr.js","tags":["preload","images"],"description":"Preload images, one after another if needed and callback when every image is ready and/or all of them","url":"https://github.com/borisschapira/preloadr","size":"0.3 kB","ghwatchers":"11","ghforks":"3","xmlEncodedName":"preloadr.js"},{"name":"psQuery","tags":["jQuery","DOM","ajax","CSS"],"description":"A fast jQuery replacement library for DOM, ajax, and CSS. 2kb minified+gzipped. Supports IE8+.","url":"https://github.com/pseudosavant/psQuery","size":"1.7 kB","ghwatchers":"47","ghforks":"7","xmlEncodedName":"psQuery"},{"name":"psColor","tags":["color","canvas"],"description":"psColor is a small JavaScript library for calculating the average color of an <img> element in the browser.","url":"https://github.com/pseudosavant/psColor","size":"0.5 kB","ghwatchers":"13","ghforks":"1","xmlEncodedName":"psColor"},{"name":"decision-tree.js","tags":["machine learning","decision tree","classifier"],"description":"Tiny library for building Decision Tree and Random Forest classifiers.","url":"https://github.com/lagodiuk/decision-tree-js","size":"1 kB","ghwatchers":"195","ghforks":"38","xmlEncodedName":"decision-tree.js"},{"name":"Nerve","tags":["async","asynchronous","channel","route","observer","mediator","events","callbacks","queue"],"description":"An asynchronous javascript micro framework for event broadcasts along routes and channels.","url":"https://github.com/jstandish/nerve","size":"0.5 kB","ghwatchers":"20","ghforks":"6","xmlEncodedName":"Nerve"},{"name":"tiny-stack","tags":["stack","data","amd"],"description":"Tiny stack for browser or server","url":"http://avoidwork.github.io/tiny-stack","size":"0.3 kB","xmlEncodedName":"tiny-stack"},{"name":"VisSense.js","tags":["visibility","viewtime","viewport","visible","dom"],"description":"A utility library for observing visibility changes of DOM elements. Immediately know when an element becomes hidden, partly visible or fully visible.","url":"https://github.com/vissense/vissense","size":"3.3 kB","ghwatchers":"785","ghforks":"30","xmlEncodedName":"VisSense.js"},{"name":"datediff","tags":["date","time"],"description":"Calculate difference between two dates","url":"https://github.com/dmfilipenko/datediff","size":"0.4 kB","ghwatchers":"18","ghforks":"5","xmlEncodedName":"datediff"},{"name":"lodash dom traverse","tags":["lodash","dom","traverse"],"description":"Dom traversing with lodash","url":"http://szarouski.github.io/lodash.dom-traverse/","size":"1.2 kB","ghwatchers":"19","ghforks":"2","xmlEncodedName":"lodash dom traverse"},{"name":"Parse Form","tags":["form","forms","parse"],"description":"A micro library used to parse and manipulate forms","url":"https://github.com/AdamBrodzinski/parse-form","size":"0.2 kB","ghwatchers":"66","ghforks":"7","xmlEncodedName":"Parse Form"},{"name":"Deb.js","tags":["debugging","console output","stack trace","time execution"],"description":"The tiniest debugger in the world","url":"https://github.com/krasimir/deb.js","size":"0.7 kB","ghwatchers":"1,435","ghforks":"84","xmlEncodedName":"Deb.js"},{"name":"henderson","tags":["statemachine","state","fsm","event","finite","state","machine","promise","promises"],"description":"A tiny event emitter-based finite state machine with promises","url":"https://github.com/orbitbot/henderson","size":"0.6 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"henderson"},{"name":"Balalaika","tags":["dom","selectors","jquery","library"],"description":"Tiny but impossible powerful jQuery-like Javascript DOM library","url":"https://github.com/finom/balalaika","size":"0.6 kB","ghwatchers":"266","ghforks":"28","xmlEncodedName":"Balalaika"},{"name":"Gifffer","tags":["gif","play control","stop","first frame"],"description":"A tiny JavaScript library that prevents the autoplaying of the animated Gifs","url":"https://github.com/krasimir/gifffer","size":"1.3 kB","ghwatchers":"651","ghforks":"72","xmlEncodedName":"Gifffer"},{"name":"Tlite","tags":["ui","tooltips","hints"],"description":"Tooltips with CSS3 transitions (650 bytes of JS min+zipped)","url":"http://chrisdavies.github.io/tlite/","size":"0.7 kB","xmlEncodedName":"Tlite"},{"name":"Rlite","tags":["rlite","route","routing","router","hash","querystring","named","parameters"],"description":"Tiny, simple, light-weight routing (~500 bytes min+zipped)","url":"https://github.com/chrisdavies/rlite","size":"0.6 kB","ghwatchers":"250","ghforks":"33","xmlEncodedName":"Rlite"},{"name":"Kwargs","tags":["python","arguments","kwargs","defaults","function","syntactic sugar"],"description":"Smart python like argument management for javascript","url":"https://github.com/serkanyersen/kwargsjs","size":"0.4 kB","ghwatchers":"112","ghforks":"3","xmlEncodedName":"Kwargs"},{"name":"ifvisible.js","tags":["visibility","idle","coffee","script","interval","requestAnimationFrame"],"description":"Crossbrowser & lightweight way to check if user is looking at the page or interacting with it.","url":"https://github.com/serkanyersen/ifvisible.js","size":"1.3 kB","ghwatchers":"1,666","ghforks":"157","xmlEncodedName":"ifvisible.js"},{"name":"ListOf","tags":["list","collection","array","library","c#"],"description":"A JavaScript implementation of the C# List object.","url":"https://github.com/joelalejandro/stuff","size":"1.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"ListOf"},{"name":"KolorWheel.js","tags":["jQuery","color","color manipulation","gradient","HSL"],"description":"KolorWheel.js generates color palette from a base color and chainable absolute/relative H-S-L transformation methods (incl. specified target color). Documentation contains live examples with editable parameters.","url":"http://linkbroker.hu/stuff/kolorwheel.js","size":"1.4 kB","xmlEncodedName":"KolorWheel.js"},{"name":"SimplyJS","tags":["simplyjs","simply","simple","easy","DOM","events","async","asynchronous","native","prototype","CSS"],"description":"Provides support for manipulating with DOM and events handling. Easy for use, optimized for performance, native browser's support first.","url":"https://github.com/janelznic/simplyjs","size":"2.2 kB","ghwatchers":"7","ghforks":"1","xmlEncodedName":"SimplyJS"},{"name":"clone","tags":["clone","copy","duplicate"],"description":"Clones/copies arbitrary objects recursively","url":"https://github.com/pvorb/clone","size":"0.9 kB","ghwatchers":"551","ghforks":"77","xmlEncodedName":"clone"},{"name":"mutant.js","tags":["mutantobserver","dom","changes","scroll","observer","change","mutate"],"description":"DOM Modification observer","url":"https://github.com/gitterHQ/mutant.js","size":"1.5 kB","ghwatchers":"30","ghforks":"7","xmlEncodedName":"mutant.js"},{"name":"NanoModal","tags":["modal","dialog","popup","message"],"description":"A small, self-contained JavaScript modal library with some extra features.","url":"https://github.com/kylepaulsen/NanoModal","size":"2.6 kB","ghwatchers":"43","ghforks":"6","xmlEncodedName":"NanoModal"},{"name":"pure-dialog","tags":["modal","dialog","popup","pop under","alert"],"description":"Pure JavaScript modal dialog designed to simplify the creation of dialogs in Web and Hybrid Mobile apps","url":"https://github.com/john-doherty/pure-dialog","size":"2.1 kB","ghwatchers":"6","ghforks":"3","xmlEncodedName":"pure-dialog"},{"name":"dom-i18n","tags":["i18n","dom","translation","multilingual","html","language","internationalization"],"description":"Provides a very basic HTML multilingual support using JavaScript","url":"https://github.com/ruyadorno/dom-i18n","size":"0.8 kB","ghwatchers":"106","ghforks":"13","xmlEncodedName":"dom-i18n"},{"name":"Rlite","tags":["rlite","route","routing","router","hash","querystring","named","parameters"],"description":"Tiny, simple, light-weight routing","url":"https://github.com/chrisdavies/rlite","size":"0.6 kB","ghwatchers":"250","ghforks":"33","xmlEncodedName":"Rlite"},{"name":"nanoajax","tags":["ajax","http"],"description":"Very basic cross-browser AJAX","url":"https://github.com/yanatan16/nanoajax","size":"0.6 kB","ghwatchers":"222","ghforks":"47","xmlEncodedName":"nanoajax"},{"name":"stupid-lib","tags":["light-weight","helpers","jquery-like","simple"],"description":"browser-javascript, jquery-like lib","url":"https://github.com/nighca/lib","size":"1 kB","ghwatchers":"5","ghforks":"2","xmlEncodedName":"stupid-lib"},{"name":"universal-diff","tags":["diff","compare","string","array","queue"],"description":"diff & merge algorithm realized with Javascript.","url":"https://github.com/nighca/universal-diff","size":"0.8 kB","ghwatchers":"54","ghforks":"8","xmlEncodedName":"universal-diff"},{"name":"lightrouter","tags":["lightrouter","route","routing","router","hash","querystring","named","parameters"],"description":"Ultra lightweight javascript routing for traditional and single page apps.","url":"https://github.com/garygreen/lightrouter","size":"0.8 kB","ghwatchers":"54","ghforks":"6","xmlEncodedName":"lightrouter"},{"name":"ListOf","tags":["list","collection","array","library","c#"],"description":"A JavaScript implementation of the C# List object.","url":"https://github.com/joelalejandro/stuff","size":"1.3 kB","ghwatchers":"5","ghforks":"0","xmlEncodedName":"ListOf"},{"name":"EventoJS","tags":["dom events","event","evento"],"description":"An easy way to manipulate events on DOM.","url":"https://github.com/gustavohenrique/eventojs","size":"0.5 kB","ghwatchers":"6","ghforks":"0","xmlEncodedName":"EventoJS"},{"name":"Carpet.js","tags":["module","simple","autoload","context","settings","module pattern","advice"],"description":"Small, easy-to-learn and modular JavaScript framework for big","url":"https://github.com/mateuszgachowski/Carpet.js","size":"0.8 kB","ghwatchers":"22","ghforks":"6","xmlEncodedName":"Carpet.js"},{"name":"keycharm","tags":["keyboard"],"description":"Simple, lightweight key-binding libw. MIT or Apache 2.0.","url":"https://github.com/AlexDM0/keycharm","size":"0.9 kB","ghwatchers":"6","ghforks":"5","xmlEncodedName":"keycharm"},{"name":"hash-router","tags":["hash","path","route","router"],"description":"Tiny and lightweight browser router library, developed with SPA in mind :)","url":"https://github.com/michaelsogos/Hash-Router","ghwatchers":"27","ghforks":"8","size":"1.1 kB","xmlEncodedName":"hash-router"},{"name":"JsDic","tags":["dependency","injection","container","di","dic"],"description":"Dependecy injection container inspired by Angular.js.","url":"https://github.com/janmarek/JsDic","size":"0.8 kB","ghwatchers":"8","ghforks":"2","xmlEncodedName":"JsDic"},{"name":"GreinerHormann","tags":["math","geometry","polygon","clipping","polyline"],"description":"Greiner-Hormann polygon clipping algorithm. Does AND, OR, XOR.","url":"http://w8r.github.io/GreinerHormann/","size":"1.4 kB","xmlEncodedName":"GreinerHormann"},{"name":"js-mediator","tags":["mediator","module","design pattern","MVC"],"description":"Design pattern to write clean, reusable, decoupled, standalone Modules that are coupled with Mediators.","url":"https://github.com/markmarijnissen/js-mediator","size":"0.8 kB","ghwatchers":"23","ghforks":"0","xmlEncodedName":"js-mediator"},{"name":"wjs","tags":["ajax","lazy","loading","remote","package"],"description":"A JavaScript / PHP to manage lazy loading from server to client.","url":"https://github.com/weeger/wjs","size":"2.5 kB","ghwatchers":"44","ghforks":"7","xmlEncodedName":"wjs"},{"name":"micro-query","tags":["uri","url","query","queryparams","parameters","parsing","querystring"],"description":"A minimal URL parameter parsing library.","url":"https://github.com/aaron-harvey/micro-query","size":"0.3 kB","ghwatchers":"13","ghforks":"8","xmlEncodedName":"micro-query"},{"name":"Carpet.js","tags":["module","simple","autoload","context","settings","module pattern","advice"],"description":"Small, easy-to-learn and modular JavaScript framework for big","url":"https://github.com/mateuszgachowski/Carpet.js","size":"0.8 kB","ghwatchers":"22","ghforks":"6","xmlEncodedName":"Carpet.js"},{"name":"aja.js","tags":["rest","ajax","xhr","jsonp"],"description":"Ajax without XML : Asynchronous JavaScript and JavaScript/JSON(P)","url":"http://krampstudio.com/aja.js/","size":"2.4 kB","ghwatchers":"304","ghforks":"45","xmlEncodedName":"aja.js"},{"name":"proto","tags":["class","inheritance","prototype","javascript","superclass","parent","child","inherit"],"description":"A prototype-based inheritance library that makes it easy to create objects and inheritance hierarchies without losing the power of javascript's prototype system.","url":"https://github.com/fresheneesz/proto","size":"0.7 kB","ghwatchers":"15","ghforks":"3","xmlEncodedName":"proto"},{"name":"mongo-parse","tags":["mongo","mongodb","mongo db","parse","parser"],"description":"A parser for mongo db queries.","url":"https://github.com/fresheneesz/mongo-parse","size":"1.4 kB","ghwatchers":"20","ghforks":"11","xmlEncodedName":"mongo-parse"},{"name":"Browser Storage JS","tags":["IndexedDB","WebSQL","localStorage","sessionStorage","localStorage","storage","database","object","store"],"description":"JavaScript Library for Cross Browser Persistence using WebStorage (LocalStorage, SessionStorage, WebSQL and IndexedDB) for all browsers.","url":"https://github.com/lcavadas/browser-storage-js","size":"1.8 kB","ghwatchers":"39","ghforks":"2"},{"name":"nano-markdown","tags":["markdown","html","nano","micro","microjs","small"],"description":"A very small Markdown to HTML converter","url":"https://github.com/Holixus/nano-markdown","size":"1 kB","ghwatchers":"14","ghforks":"7","xmlEncodedName":"nano-markdown"},{"name":"SimpleScrollbar","tags":["scrollbar","ui","interface","scroll","custom","lightweight"],"description":"Very simple vanilla javascript library for creating a custom scrollbar cross-browser and cross-devices","url":"https://github.com/buzinas/simple-scrollbar","size":"0.9 kB","ghwatchers":"356","ghforks":"106","xmlEncodedName":"SimpleScrollbar"},{"name":"tplize","tags":["templates"],"description":"A ~2kb lib for quickly prototyping templated content","url":"https://github.com/gutnikov/tplize","size":"1.5 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"tplize"},{"name":"populate.js","tags":["json","form"],"description":"Populate form fields from a JSON object. Extremely small, no dependencies.","url":"https://github.com/dannyvankooten/populate.js","size":"0.5 kB","ghwatchers":"51","ghforks":"13","xmlEncodedName":"populate.js"},{"name":"offside.js","tags":["menu","navigation","responsive","off-canvas","offcanvas","off","canvas"],"description":"A minimal ~3kb JavaScript kit without library dependencies to push things off-canvas using using just class manipulation.","url":"https://github.com/toomuchdesign/offside","size":"1.3 kB","ghwatchers":"162","ghforks":"9","xmlEncodedName":"offside.js"},{"name":"html-chain","tags":["html","lightweight","dom","dom-builder","templating","chain"],"description":"A small javascript library to build DOM elements by chaining javascript functions","url":"https://github.com/maael/html-chain","size":"0.6 kB","ghwatchers":"19","ghforks":"4","xmlEncodedName":"html-chain"},{"name":"wallop.js","tags":["helper","lightweight","slider","browser","carousel","native","slideshow","gallery","toggle"],"description":"A minimal JS library for showing & hiding things.","url":"https://github.com/peduarte/wallop","size":"1.3 kB","ghwatchers":"1,159","ghforks":"87","xmlEncodedName":"wallop.js"},{"name":"Universal Router","tags":["react","reactjs","react-component","route","routes","router","routing","flux"],"description":"A simple middleware-style router for isomorphic JavaScript web apps","url":"https://www.kriasoft.com/universal-router/","ghwatchers":"1,178","ghforks":"90","size":"2.3 kB","xmlEncodedName":"Universal Router"},{"name":"isMobileOS.js","tags":["helper","lightweight","mobile","detection","user agent string","ES6","UMD"],"description":"A simple ECMAScript6 module which checks for mobile operating systems.","url":"https://github.com/RazorfishGermany/es6-module-isMobileOs","size":"0.3 kB","ghwatchers":"4","ghforks":"0","xmlEncodedName":"isMobileOS.js"},{"name":"nanoflux.js","tags":["flux","lightweight","full flux","tiny","micro"],"description":"A very lightweight and dependency-free Flux implementation","url":"https://github.com/ohager/nanoflux","size":"1.4 kB","ghwatchers":"54","ghforks":"4","xmlEncodedName":"nanoflux.js"},{"name":"smoke-signal","tags":["pubsub","event","observer"],"description":"Simple small functional event observer for the browser and node.","url":"https://github.com/StephanHoyer/smoke-signal","size":"0.3 kB","ghwatchers":"13","ghforks":"3","xmlEncodedName":"smoke-signal"},{"name":"nanoflux.js","tags":["flux","lightweight","full flux","tiny","micro"],"description":"A very lightweight and dependency-free Flux implementation","url":"https://github.com/ohager/nanoflux","size":"1.4 kB","ghwatchers":"54","ghforks":"4","xmlEncodedName":"nanoflux.js"},{"name":"min.css","tags":["minify","css","javascript","nodejs","fastest","tiniest"],"description":"min.css is the tiniest, fastest and efficient JavaScript library for minifying CSS files. It works in node and the browser.","url":"https://github.com/w3core/min.css","size":"1.1 kB","ghwatchers":"11","ghforks":"3","xmlEncodedName":"min.css"},{"name":"viiny-dragger","tags":["viiny","viiny-dragger","drag and drop"],"description":"vinny-dragger is a drag and drop plugin for javascript.","url":"http://giraysam.github.io/viiny-dragger/","size":"1.5 kB","ghwatchers":"25","ghforks":"3","xmlEncodedName":"viiny-dragger"},{"name":"razax.js","tags":["ajax","xhr","xmlhttprequest","simple","nojquery","minimalcode"],"description":"Simple way to make ajax requests with or without arguments in single line of code. Easy for novice users.","url":"https://github.com/razaibi/razaxjs","size":"0.3 kB","ghwatchers":"4","ghforks":"4","xmlEncodedName":"razax.js"},{"name":"TinyAnimate","tags":["animate","animation","css","easing","svg","tiny","lightweight","requestAnimationFrame","window.performance"],"description":"Animation micro library. Vanilla JavaScript.","url":"https://github.com/branneman/TinyAnimate","size":"1.1 kB","ghwatchers":"87","ghforks":"17","xmlEncodedName":"TinyAnimate"},{"name":"XPopUp","tags":["popup","window.open","javascript","browser","callback","nojquer","simple","easy","events","chrome","firefox"],"description":"Full control over JavaScript PopUp's.","url":"https://github.com/reduardo7/xpopup","size":"1.3 kB","ghwatchers":"5","ghforks":"4","xmlEncodedName":"XPopUp"},{"name":"sjsClass","tags":["class","node","npm","javascript","nojquery","browser","chrome"],"description":"Simple JavaScript Class. Create your advanced JavaScript Class!","url":"https://github.com/reduardo7/sjsClass","size":"2.6 kB","ghwatchers":"23","ghforks":"3","xmlEncodedName":"sjsClass"},{"name":"arenite","tags":["dependency","inversion","control","injection","ioc","di","require","dependency injection","provider","IOC","microkernel","module","framework","service locator"],"description":"Inversion of Control / Dependency Injection Library","url":"https://github.com/arenite/arenite","size":"4.3 kB","ghwatchers":"2","ghforks":"0","xmlEncodedName":"arenite"},{"name":"ns.js","tags":["namespace","module","scope","simple","name","space"],"description":"A small and simple Javascript namespace function","url":"https://github.com/Soldier-B/ns.js","size":"0.1 kB","ghwatchers":"1","ghforks":"0","xmlEncodedName":"ns.js"},{"name":"microTK","tags":["dom","events","query selection"],"description":"A tiny JavaScript framework","url":"https://microtk.io","ghwatchers":"0","ghforks":"0","size":"0.8 kB","xmlEncodedName":"microTK"},{"name":"tinyfade.js","tags":["javascript","slideshow","slider","responsive","fade","image"],"description":"A tiny plain JavaScript library for fully responsive image slideshows.","url":"https://moqmar.github.io/tinyfade.js/","size":"0.7 kB","ghwatchers":"6","ghforks":"1","xmlEncodedName":"tinyfade.js"},{"name":"boomerang-cache","tags":["boomerang","boomerang-cache","localStorage","sessionStorage","javascript cache"],"description":"boomerangCache is a client side caching library based on localStorage and sessionStorage","url":"http://giraysam.github.io/boomerang-cache/","size":"5.6 kB","ghwatchers":"9","ghforks":"4","xmlEncodedName":"boomerang-cache"},{"name":"Prophet.js","tags":["toast","notification","growl","snarl","alert","flash","messages","vanilla"],"description":"Vanilla JS library for clean toast notifications","url":"https://github.com/binarybaba/prophetjs","size":"1.5 kB","ghwatchers":"22","ghforks":"6","xmlEncodedName":"Prophet.js"},{"name":"simple-require-loader","tags":["loader","spa","cross-platform"],"description":"A simple, dynamic, powerful module loader with hot swapping and optional remote loading support.","url":"https://github.com/isiahmeadows/simple-require-loader","ghwatchers":"6","ghforks":"1","size":"0.4 kB","xmlEncodedName":"simple-require-loader"},{"name":"Redux","tags":["data","functional"],"description":"Predictable state container for JavaScript apps","url":"http://redux.js.org/","size":"3 kB","ghwatchers":"46,696","ghforks":"11,880","xmlEncodedName":"Redux"},{"name":"microBench","tags":["performance","benchmark"],"description":"Tiny, simple framework to benchmark your JS functions in browser console","url":"https://github.com/kmpatel/microBench/releases","size":"0.6 kB","ghwatchers":"1","ghforks":"1","xmlEncodedName":"microBench"},{"name":"Animatelo","tags":["animation","animate","web animation"],"description":"Animatelo is a bunch of cool, fun, and cross-browser animations for you to use in your projects. This is a porting to Web Animation API of the fabulous animate.css project.","url":"https://gibbok.github.io/animatelo/","size":"2.9 kB","ghwatchers":"420","ghforks":"34","xmlEncodedName":"Animatelo"},{"name":"xPrototype","tags":["javascript","prototype","extend","object","quick","simple","nojquery","loop","browser","chrome","firefox"],"description":"xPrototype is a fast, small and feature-rich JavaScript library. It makes things like for loop, for each, time out / interval, data types, sort / order, conversion, clone object, extend object, string manipulation much simpler with an easy-to-use API that works across a multitude of browsers and platforms.","url":"https://github.com/reduardo7/xPrototype","size":"3.3 kB","ghwatchers":"1","ghforks":"1","xmlEncodedName":"xPrototype"},{"name":"microdi","tags":["dependency","injection","di","es6"],"description":"Micro helper for JavaScript dependency injection (DI).","url":"https://github.com/yavorskiy/microdi","size":"0.1 kB","ghwatchers":"14","ghforks":"1","xmlEncodedName":"microdi"},{"name":"aph","tags":["javascript","DOM","jQuery","Manipulation"],"description":"A mini (1.2kb) DOM Manipulation library. A very slim and fast helper.","url":"https://github.com/kaisermann/aph","size":"1.5 kB","ghwatchers":"7","ghforks":"0","xmlEncodedName":"aph"},{"name":"Spck-Embed","tags":["embeddable","code","editor"],"description":"Small embeddable online code editor for demos.","url":"https://github.com/spckio/spck-embed","size":"0.7 kB","ghwatchers":"4","ghforks":"0"},{"name":"Excellent.js","tags":["DOM","manipulation","framework"],"description":"DOM-Manipulation Framework","url":"https://github.com/vitaly-t/excellent","size":"3 kB","ghwatchers":"22","ghforks":"3"},{"name":"gradstop","tags":["colors","palette","gradient","hex","rgb","hsl"],"description":"JavaScript micro library to generate gradient color stops","url":"https://github.com/Siddharth11/gradstop","size":"1.6 kB","ghwatchers":"106","ghforks":"8"},{"name":"easyrouter","tags":["html5","router","routes","browser","location","history","hash"],"description":"Tiny, fast, easy, yet powerful hash router in JavaScript","url":"https://github.com/aMarCruz/easyrouter","size":"1.3 kB","ghwatchers":"1","ghforks":"0"},{"name":"Beedle","tags":["state","data","functional"],"description":"A tiny library inspired by Redux & Vuex to help you manage state in your JavaScript apps","url":"https://github.com/hankchizljaw/beedle","size":"0.4 kB","ghwatchers":"148","ghforks":"9"}]; \ No newline at end of file From a2f9487721f078aea4c8eb55e3f3ba8a881fe536 Mon Sep 17 00:00:00 2001 From: Thomas Fuchs Date: Thu, 21 Feb 2019 13:16:11 -0500 Subject: [PATCH 3/4] Update index.html --- index.html | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 61e072b64..b13956d10 100644 --- a/index.html +++ b/index.html @@ -67,30 +67,26 @@

for you.

Want to add your own? - Fork this site on GitHub, + Fork this site on GitHub, add your framework to data.js and submit a pull request.

Can't get enough?

- Special thanks to Freckle Time Tracking. + Special thanks to Time Zone Converter.

-

- JavaScript -

-