<!doctype html><!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]--><!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]--><!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!</title> <meta prefix="og: http://ogp.me/ns#" property="og:title" content="cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!" /> <meta prefix="og: http://ogp.me/ns#" property="og:site_name" content="cdnjs.com" /> <meta prefix="og: http://ogp.me/ns#" property="og:type" content="website" /> <meta prefix="og: http://ogp.me/ns#" property="og:url" content="https://cdnjs.com/" /> <meta prefix="og: http://ogp.me/ns#" property="og:image" content="https://cdnjs.com/img/cdnjs-banner.png" /> <meta prefix="og: http://ogp.me/ns#" property="og:description" content="cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@cdnjs" /> <meta name="twitter:url" content="https://cdnjs.com/" /> <meta name="twitter:title" content="cdnjs.com" /> <meta name="twitter:description" content="cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!" /> <meta name="twitter:image" content="https://cdnjs.com/img/cdnjs-banner.png" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="description" content="cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!" /> <meta name="keywords" content="CDN,cdnjs,js,css,library,web,front-end,free,open-source,png,plugin,ng,jQuery,angular" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/themes/orange/pace-theme-minimal.min.css" integrity="sha256-kb8pRNu1sIwQEWAO/Mqt1S5PZ5xiLd4nBMoSsqdxKPs=" crossorigin="anonymous" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js" integrity="sha256-EPrkNjGEmCWyazb3A/Epj+W7Qm2pB9vnfXw+X6LImPM=" crossorigin="anonymous" async></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/united/bootstrap.min.css" integrity="sha256-IYGI0ovdtvTnw19p8rG6jZjmlX+5x+4rw9uAhk+5OC4=" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" integrity="sha256-UzFD2WYH2U1dQpKDjjZK72VtPeWP50NoJjd26rnAdUI=" crossorigin="anonymous" /> <link rel="stylesheet" href="/css/theme.css" /> <link rel="stylesheet" href="/css/main.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/octicons/3.5.0/octicons.min.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/app-loading/0.0.51/app-loading.min.css" integrity="sha256-CYVY39mQQ+3yRKbAaPcIrOcRUUVw+L3BFBM1s/lRb0s=" crossorigin="anonymous" /> <link rel="dns-prefetch" href="//cdn.carbonads.com" /> <link rel="dns-prefetch" href="//static.getclicky.com" /> <link rel="dns-prefetch" href="//www.google-analytics.com" /> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="cdnjs" /> <link rel="shortcut icon" type="image/png" href="https://cdnjs.com/img/cdnjs-icon.png" /> <link rel="icon" type="image/png" href="https://cdnjs.com/img/cdnjs-icon.png" /> <link rel="canonical" href="https://cdnjs.com" /></head> <body data-instant-allow-query-string data-instant-allow-external-links><span id="fork-on-github"><a href="https://github.com/cdnjs/cdnjs" target="_blank">cdnjs on GitHub</a></span><div class="container home"> <div class="row"> <div class="col-md-12"> <div class="menu btn-group"> <a class="btn btn-link logo" href="/">cdnjs</a> <div class="btn-group btn-space"> <a id="network-status-group-drop" class="btn btn-link dropdown-toggle" data-toggle="dropdown" href="#"> Network &amp; Status<span class="caret"></span> </a> <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="network-status-group-drop"> <li class="dropdown-header">Cloudflare Network</li> <li><a href="https://www.cloudflare.com/network-map" target="_blank">Network Map</a></li> <li class="dropdown-header">cdnjs.com &amp; CDN service</li> <li><a href="http://stats.pingdom.com/4jg86a2wqei0" target="_blank">CDN Uptime</a></li> <li> <a href="https://status.cdnjs.com" target="_blank"> Status Page <span class="status-color-dot"></span> </a> </li> <li><a href="https://twitter.com/cdnjsStatus" target="_blank">cdnjsStatus on Twitter</a></li> </ul> </div> <a class="btn btn-link btn-space" href="/api">API</a> <a class="btn btn-link btn-space" href="/about">About</a> <a class="btn btn-link btn-space" href="https://cdnjs.discourse.group/" target="_blank">Community</a> <a class="btn btn-link btn-space" href="/libraries">Browse Libraries</a> </div> </div> </div></div> <div class="page"> <div class="container"> <div class="row"> <div class="col-md-12"> <input id="search-box" placeholder="Search from 3449 libraries with 103616 different versions ..." type="text" class="form-control col-md-7 search" aria-controls="example" /> <div class="text-muted"> <ol class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">  <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="" class="text-muted"> <span itemprop="name">Home</span> </a> <meta itemprop="position" content="1" /> </li> </ol> <span class="pull-right"> Realtime search by <a href="https://www.algolia.com/?utm_source=cdnjs&amp;utm_medium=link&amp;utm_campaign=cdnjs_search" target="_blank"><img src="/img/algolia.svg" alt="Algolia" style="height: 20px; width: 75px;"/></a> </span> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div> <div class="packages-table-container" style="display: none;"> <div id="default-demo"></div> <p style="display: none;"> Found <span id="nb-hits-field" class="major-color">0</span> libraries in <span id="processing-time-ms">0</span>ms. </p> <table style="margin-top: 10px; margin-bottom: 80px;" cellpadding="0" cellspacing="0" border="0" class="table table-striped" id="example"> <thead> <tr> <th scope="col">Library</th> <th scope="col">Link</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div> </div></div> <script src="//m.servedby-buysellads.com/monetization.js"></script><script> (function () { _bsa.init('default', 'CVAI653I', 'placement:demo', { target: '#default-demo', align: 'horizontal', disable_css: 'true' }); })();</script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://cdnjs.com/", "potentialAction": { "@type": "SearchAction", "target": "https://cdnjs.com/#q={search_term_string}", "query-input": "required name=search_term_string" } }</script></div> <footer class="footer"> <div class="container"> <p> Donate $5 to cdnjs via <a href="https://www.bountysource.com/teams/cdnjs" target="_blank">Bountysource</a>, <a href="https://opencollective.com/cdnjs" target="_blank">Open Collective</a> or <a href="https://www.patreon.com/cdnjs" target="_blank">Patreon</a>, or contribute on <a href="https://github.com/cdnjs/cdnjs" target="_blank"><i class="fab fa-github"></i> GitHub</a> to make cdnjs sustainable! <span class="pull-right"> <a href="https://twitter.com/cdnjs" target="_blank"><i class="fab fa-twitter-square"></i> Twitter</a> &nbsp; <a href="https://cdnjs.discourse.group/" target="_blank"><i class="fab fa-discourse"></i> Discourse</a> </span> </p> </div></footer> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" integrity="sha256-8E6QUcFg1KTnpEU8TFGhpTGHw5fJqB9vCms3OhAYLqw=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js" integrity="sha256-LcmhwhERhehbcSu6ONVL54dAzJrhoSigqDk+N3Z9ga4=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap-dropdown.min.js" integrity="sha256-rijzCU94p74J5qWPo8AYTAV0nSq9QgjOGe8GOPEy7tM=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap-tooltip.min.js" integrity="sha256-9AeT3HOnzBOXSYb0q6qrJzpDO/RB6RXZKyRCrA5dSkY=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.1/js/bootstrap-tab.min.js" integrity="sha256-GVEVIuOVDXahWm+k5+9Mq/rq4f7R7eHVrCThkK1SDQM=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" integrity="sha256-Daf8GuI2eLKHJlOWLRR/zRy9Clqcj4TUSumbxYH9kGI=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/3.24.4/algoliasearchLite.min.js" integrity="sha256-wbEgHd2yM8nVpWCe+opFpIPgmQhxytEHM+r+OW8PW/Q=" crossorigin="anonymous" defer></script><script src="https://cdnjs.cloudflare.com/ajax/libs/app-loading/0.0.51/app-loading.min.js" integrity="sha256-YSI87JLSmNNNEzQ0YAIi3MWCVwrWJNSWe7u27Rs6c6c=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/scrollprogress/2.1.2/scrollProgress.min.js" integrity="sha256-G9QkudSF5N+LvucdLGGiCZqtbgLkJ8p8bOyhN68atbM=" crossorigin="anonymous"></script><script src="/js/main.js" defer></script> <script src="//static.getclicky.com/js" defer></script><script defer>try{clicky.init(66376315);}catch(err){}</script><noscript><p><img alt="Clicky" width="1" height="1" src="//in.getclicky.com/66376315ns.gif" /></p></noscript><script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-44291190-1', 'auto'); ga('require', 'linkid', 'linkid.js'); ga('require', 'displayfeatures'); ga('send', 'pageview'); $('.post > p, .post > h1, .post > h2, .post > ul, .post > h3, .post > blockquote').wrap('<div class="container"><div class="row"><div class="col-md-10 col-md-offset-1">'); $('.post > pre > code').wrapInner('<div class="container"><div class="row"><div class="col-md-10 col-md-offset-1">'); $('.post code').addClass('hljs'); $('.post').show();</script><script src="https://cdnjs.cloudflare.com/ajax/libs/scrollup/2.4.1/jquery.scrollUp.min.js" integrity="sha256-t2YrqZoTLq/Qt8zIw0BMiuRC2X5+a3O7PODU8RwoyYw=" crossorigin="anonymous"></script> <script src="https://1fkb7yl9sw87.statuspage.io/embed/script.js"></script><script src="https://cdn.statuspage.io/se-v2.js"></script><script defer> var sp = new StatusPage.page({page: '1fkb7yl9sw87'}); sp.status({ success: function(data) { $('.status-color-dot').addClass(data.status.indicator); } });</script> <script defer>hljs.initHighlightingOnLoad();</script><div itemscope itemtype="https://schema.org/WebSite" style="display:none"> <meta itemprop="url" content="https://cdnjs.com/"/> <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://cdnjs.com/#q={search_term_string}"/> <input itemprop="query-input" type="text" name="q" required/> <input type="submit"/> </form></div><script src="https://cdnjs.cloudflare.com/ajax/libs/instant.page/1.2.1/instantpage.js" integrity="sha256-nwXN1TPiudCodASfUbvtgw4r8CLidLH2+j+kcM9rb9M=" crossorigin="anonymous"></script></body></html>