medialize/URI.js is a JavaScript project with 6.2k stars in the Frontend space. Javascript URL mutation library
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Things are looking up with URL and the URL spec but until we can safely rely on that API, have a look at URI.js for a clean and simple API for mutating URIs:
var url = new URI("http://example.org/foo?bar=baz");
url.addQuery("foo", "bar");
URI.js (without plugins) has a gzipped weight of about 7KB - if you include all extensions you end up at about 13KB. So unless you need second level domain support and use URI templates, we suggest you don't include them in your build. If you don't need a full featured URI mangler, it may be worth looking into the much smaller parser-only alternatives listed below.
URI.js is available through npm, bower, bowercdn, cdnjs and manually from the build page:
# using bower
bower install uri.js
# using npm
npm install urijs
Browser
I guess you'll manage to use the build tool or follow the instructions below to combine and minify the various files into URI.min.js - and I'm fairly certain you know how to <script src=".../URI.min.js"></script> that sucker, too.
Node.js and NPM
Install with npm install urijs or add "urijs" to the dependencies in your package.json.
// load URI.js
var URI = require('urijs');
// load an optional module (e.g. URITemplate)
var URITemplate = require('urijs/src/URITemplate');
URI("/foo/bar/baz.html")
.relativeTo("/foo/bar/sub/world.html")
// -> ../baz.html
RequireJS
Clone the URI.js repository or use a package manager to get URI.js into your project.
RFC 2732 - Format for Literal IPv6 Addresses in URL's
RFC 2368 - The mailto: URL Scheme
RFC 2141 - URN Syntax
IANA URN Namespace Registry
Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)
application/x-www-form-urlencoded (Query String Parameters) and application/x-www-form-urlencoded encoding algorithm
What every web developer must know about URL encoding
Informal stuff
Parsing URLs for Fun and Profit
Naming URL components
How other environments do things
Java URI Class
Java Inet6Address Class
Node.js URL API
Discussion on Hacker News
Forks / Code-borrow
node-dom-urls passy's partial implementation of the W3C URL Spec Draft for Node
urlutils cofounders' window.URL constructor for Node
Alternatives
If you don't like URI.js, you may like one of the following libraries. (If yours is not listed, drop me a line…)
Polyfill
DOM-URL-Polyfill arv's polyfill of the DOM URL spec for browsers
inexorabletash inexorabletash's WHATWG URL API
URL Manipulation
The simple URL Mutation "Hack" (jsPerf comparison)
URL.js
furl (Python)
mediawiki Uri (needs mw and jQuery)
jurlp
jsUri
URL Toolkit Build an absolute URL from a base URL and a relative URL (RFC 1808)
URL Parsers
The simple URL Mutation "Hack" (jsPerf comparison)
URI Parser
jQuery-URL-Parser
Google Closure Uri
URI.js by Gary Court
URI Template
uri-template (supporting extraction as well) by Rezigne
uri-templates (supporting extraction as well) by Geraint Luff
uri-templates by Marc Portier
uri-templates by Geraint Luff (including reverse operation)
URI Template JS by Franz Antesberger
Temple by Brett Stimmerman
(jsperf comparison)
Various
TLD.js - second level domain names
Public Suffix - second level domain names
uri-collection - underscore based utility for working with many URIs
Authors
Rodney Rehm
Various Contributors
Contains Code From
punycode.js - Mathias Bynens
IPv6.js - Rich Brown - (rewrite of the original)
License
URI.js is published under the MIT license. Until version 1.13.2 URI.js was also published under the GPL v3 license - but as this dual-licensing causes more questions than helps anyone, it was dropped with version 1.14.0.
The most recent commit recorded on medialize/URI.js was 3.0 years ago, based on the GitHub push timestamp. The repository has 468 forks — one of the better signals of community interest.
How does medialize/URI.js compare to other Frontend projects?
medialize/URI.js is tracked by TopGit in the Frontend category, with 6.2k GitHub stars and written in JavaScript. Browse the Frontend topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does medialize/URI.js have?
medialize/URI.js has 6.2k GitHub stars — refresh the page for the live number, or check github.com/medialize/URI.js. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is medialize/URI.js?
medialize/URI.js (medialize/URI.js) is a JavaScript project on GitHub. From the project's own README: Javascript URL mutation library
What language is medialize/URI.js written in?
medialize/URI.js is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is medialize/URI.js associated with?
GitHub's repository topics for medialize/URI.js: "javascript", "rfc-2732", "rfc-3986", "rfc-6570", "uri", "uri-template", "url", "url-parser". TopGit's editorial category is Frontend.
Why is medialize/URI.js categorized under Frontend?
TopGit places medialize/URI.js in the Frontend category based on its GitHub topics and description (tagged: "javascript", "rfc-2732", "rfc-3986"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Is URI.js worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of URI.js.