https://github.com/sporkmonger/addressable
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
https://github.com/sporkmonger/addressable
Keywords
uri uri-template
Keywords from Contributors
activerecord rubygems activejob mvc rspec rack ruby-gem rubocop feature-flag crash-reporting
Last synced: about 22 hours ago
JSON representation
Repository metadata
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
- Host: GitHub
- URL: https://github.com/sporkmonger/addressable
- Owner: sporkmonger
- License: apache-2.0
- Created: 2008-06-05T19:00:11.000Z (over 17 years ago)
- Default Branch: main
- Last Pushed: 2026-01-28T22:21:41.000Z (about 1 month ago)
- Last Synced: 2026-02-26T01:30:02.833Z (6 days ago)
- Topics: uri, uri-template
- Language: Ruby
- Homepage:
- Size: 1.89 MB
- Stars: 1,595
- Watchers: 30
- Forks: 274
- Open Issues: 42
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
README.md
Addressable
Description
Addressable is an alternative implementation to the URI implementation
that is part of Ruby's standard library. It is flexible, offers heuristic
parsing, and additionally provides extensive support for IRIs and URI templates.
Addressable closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4).
Reference
- {Addressable::URI}
- {Addressable::Template}
Example usage
require "addressable/uri"
uri = Addressable::URI.parse("http://example.com/path/to/resource/")
uri.scheme
#=> "http"
uri.host
#=> "example.com"
uri.path
#=> "/path/to/resource/"
uri = Addressable::URI.parse("http://www.詹姆斯.com/")
uri.normalize
#=> #<Addressable::URI:0xc9a4c8 URI:http://www.xn--8ws00zhy3a.com/>
URI Templates
For more details, see RFC 6570.
require "addressable/template"
template = Addressable::Template.new("http://example.com/{?query*}")
template.expand({
"query" => {
'foo' => 'bar',
'color' => 'red'
}
})
#=> #<Addressable::URI:0xc9d95c URI:http://example.com/?foo=bar&color=red>
template = Addressable::Template.new("http://example.com/{?one,two,three}")
template.partial_expand({"one" => "1", "three" => 3}).pattern
#=> "http://example.com/?one=1{&two}&three=3"
template = Addressable::Template.new(
"http://{host}{/segments*}/{?one,two,bogus}{#fragment}"
)
uri = Addressable::URI.parse(
"http://example.com/a/b/c/?one=1&two=2#foo"
)
template.extract(uri)
#=>
# {
# "host" => "example.com",
# "segments" => ["a", "b", "c"],
# "one" => "1",
# "two" => "2",
# "fragment" => "foo"
# }
Install
$ gem install addressable
You may optionally turn on native IDN support by installing libidn and the
idn gem:
$ sudo apt-get install libidn11-dev # Debian/Ubuntu
$ brew install libidn # OS X
$ gem install idn-ruby
Semantic Versioning
This project uses Semantic Versioning. You can (and should) specify your
dependency using a pessimistic version constraint covering the major and minor
values:
spec.add_dependency 'addressable', '~> 2.7'
If you need a specific bug fix, you can also specify minimum tiny versions
without preventing updates to the latest minor release:
spec.add_dependency 'addressable', '~> 2.3', '>= 2.3.7'
Owner metadata
- Name: Bob Aman
- Login: sporkmonger
- Email:
- Kind: user
- Description:
- Website: http://sporkmonger.com/
- Location: Minneapolis, MN
- Twitter:
- Company: @discord
- Icon url: https://avatars.githubusercontent.com/u/1778?u=f1a2a1438f5ac17d2e56ec18ba5874f5b81a9d0a&v=4
- Repositories: 131
- Last ynced at: 2025-10-11T15:09:08.887Z
- Profile URL: https://github.com/sporkmonger
GitHub Events
Total
- Delete event: 3
- Pull request event: 12
- Fork event: 9
- Issues event: 13
- Watch event: 38
- Issue comment event: 20
- Push event: 10
- Pull request review event: 6
- Create event: 1
Last Year
- Delete event: 3
- Pull request event: 10
- Fork event: 3
- Issues event: 7
- Watch event: 19
- Issue comment event: 10
- Push event: 9
- Pull request review event: 6
- Create event: 1
Committers metadata
Last synced: about 24 hours ago
Total Commits: 831
Total Committers: 111
Avg Commits per committer: 7.486
Development Distribution Score (DDS): 0.511
Commits in past year: 35
Committers in past year: 5
Avg Commits per committer in past year: 7.0
Development Distribution Score (DDS) in past year: 0.2
| Name | Commits | |
|---|---|---|
| Bob Aman | b****b@s****m | 406 |
| Patrik Ragnarsson | p****k@s****t | 96 |
| Bob Aman | b****n@g****m | 55 |
| Erik Michaels-Ober | s****k@g****m | 25 |
| David Haslem | t****a@g****m | 25 |
| Ilya Grigorik | i****a@i****m | 21 |
| Ashwin Maroli | a****i@g****m | 12 |
| Peter Goldstein | p****n@g****m | 6 |
| Aleksey Strizhak | a****k@g****m | 5 |
| dependabot[bot] | 4****] | 5 |
| Adrien Rey-Jarthon | j****s@a****m | 5 |
| Mislav Marohnić | m****c@g****m | 5 |
| Olle Jonsson | o****n@g****m | 5 |
| Iain Beeston | i****n@g****m | 4 |
| Steven Bazyl | s****l@g****m | 4 |
| Konstantin Haase | k****s@g****m | 4 |
| Matthew Kerwin | m****w@k****u | 4 |
| Julien Pervillé | j****e@p****m | 4 |
| Alejandro Perea Fernández | a****z@g****m | 4 |
| Akira Matsuda | r****e@d****p | 3 |
| Andy Triggs | a****s@g****m | 3 |
| Charley Stran | c****n@g****m | 3 |
| sanemat | o****n@g****m | 3 |
| ronen barzel | r****n@b****g | 3 |
| Patrick Toomey | p****3@b****m | 3 |
| MothOnMars | 4****s | 3 |
| Graeme Boyd | g****e@f****m | 3 |
| Gregg Kellogg | g****g@k****m | 3 |
| Jean byroot Boussier | j****b@s****m | 3 |
| Aaron Patterson | t****e@r****g | 3 |
| and 81 more... | ||
Committer domains:
- mac.com: 2
- ruby-lang.org: 2
- distilnetworks.com: 1
- hackerone.com: 1
- github.com: 1
- scribd.com: 1
- suse.de: 1
- brunosutic.com: 1
- devopsy.com: 1
- barelyenough.org: 1
- debian.org: 1
- franca.dev: 1
- me.com: 1
- animoto.com: 1
- jadedpixel.com: 1
- shopify.com: 1
- kellogg-assoc.com: 1
- freeagent.com: 1
- biasedcoin.com: 1
- barzel.org: 1
- dio.jp: 1
- perfect-memory.com: 1
- kerwin.net.au: 1
- adrienjarthon.com: 1
- igvita.com: 1
- google.com: 1
- starkast.net: 1
- sporkmonger.com: 1
- mrkn.jp: 1
- ktdreyer.com: 1
- justinli.net: 1
- jeremyevans.net: 1
- mail.ru: 1
- taylorhq.com: 1
- hey.com: 1
- pandawhisperer.net: 1
- mtu.edu: 1
- cooltrainer.org: 1
- ojab.ru: 1
- nil.nu: 1
- desire.sh: 1
- timcraft.com: 1
- shaicoleman.com: 1
- pm.me: 1
- bbc.co.uk: 1
- ecraft.com: 1
- linnane.io: 1
- freelancing-gods.com: 1
- olivierlacan.com: 1
- fittl.com: 1
- marburger.cc: 1
- wrapports.com: 1
- unknown-00-1f-5b-b8-2d-ff.home: 1
- fun-box.ru: 1
- joshsoftware.com: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 73
Total pull requests: 105
Average time to close issues: 10 months
Average time to close pull requests: 3 months
Total issue authors: 61
Total pull request authors: 35
Average comments per issue: 2.79
Average comments per pull request: 2.15
Merged pull request: 82
Bot issues: 0
Bot pull requests: 4
Past year issues: 6
Past year pull requests: 10
Past year average time to close issues: 1 day
Past year average time to close pull requests: 2 days
Past year issue authors: 6
Past year pull request authors: 6
Past year average comments per issue: 1.5
Past year average comments per pull request: 1.4
Past year merged pull request: 6
Past year bot issues: 0
Past year bot pull requests: 2
Top Issue Authors
- sporkmonger (5)
- dentarg (3)
- eregon (2)
- davidtaylorhq (2)
- ukolovda (2)
- jarthod (2)
- Yihao-G (2)
- ojab (2)
- alan-pie (1)
- DONALDSULLENDER (1)
- moussatat (1)
- PandaWhisperer (1)
- abotalov (1)
- edwardxia (1)
- greenfork (1)
Top Pull Request Authors
- dentarg (39)
- Mifrill (8)
- jarthod (6)
- dependabot[bot] (4)
- m-nakamura145 (3)
- casperisfine (3)
- postmodern (3)
- petergoldstein (3)
- p-linnane (2)
- antoinem (2)
- dpep (2)
- ianks (2)
- ashmaroli (2)
- SebastienLAURET (2)
- rumankazi (2)
Top Issue Labels
- Accepted (23)
- Duplicate (9)
- URI Templates (5)
- Rejected (5)
- High Priority (3)
- Parsing (2)
- In Progress (1)
- dependencies (1)
Top Pull Request Labels
- Accepted (7)
- dependencies (7)
- Rejected (4)
- github_actions (3)
- Needs Fixes (1)
- URI Templates (1)
- Needs Documentation (1)
Package metadata
- Total packages: 24
-
Total downloads:
- rubygems: 2,252,294,965 total
- Total docker downloads: 7,574,336,016
- Total dependent packages: 1,610 (may contain duplicates)
- Total dependent repositories: 897,140 (may contain duplicates)
- Total versions: 121
- Total maintainers: 4
- Total advisories: 1
gem.coop: addressable
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: http://www.rubydoc.info/gems/addressable/
- Licenses: Apache-2.0
- Latest release: 2.8.9 (published 4 days ago)
- Last Synced: 2026-03-02T07:02:27.312Z (1 day ago)
- Versions: 46
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 1,126,259,135 Total
- Docker Downloads: 3,787,168,008
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.008%
- Downloads: 0.023%
- Maintainers (3)
debian-13: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: https://packages.debian.org/trixie/ruby-addressable
- Licenses: apache-2.0
- Latest release: 2.8.7-2 (published 19 days ago)
- Last Synced: 2026-02-13T13:13:13.370Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.174%
- Forks count: 0.332%
- Stargazers count: 0.365%
rubygems.org: addressable
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: http://www.rubydoc.info/gems/addressable/
- Licenses: Apache-2.0
- Latest release: 2.8.9 (published 4 days ago)
- Last Synced: 2026-03-01T20:31:33.662Z (2 days ago)
- Versions: 46
- Dependent Packages: 1,604
- Dependent Repositories: 897,139
- Downloads: 1,126,035,830 Total
- Docker Downloads: 3,787,168,008
-
Rankings:
- Dependent repos count: 0.011%
- Downloads: 0.013%
- Docker downloads count: 0.028%
- Dependent packages count: 0.032%
- Average: 0.49%
- Stargazers count: 1.3%
- Forks count: 1.557%
- Maintainers (3)
- Advisories:
alpine-v3.18: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.4-r0 (published almost 3 years ago)
- Last Synced: 2026-02-03T16:20:22.594Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 2.921%
- Forks count: 5.207%
- Stargazers count: 6.478%
- Maintainers (1)
alpine-edge: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.7-r1 (published 10 months ago)
- Last Synced: 2026-02-23T14:00:43.146Z (8 days ago)
- Versions: 7
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Forks count: 6.266%
- Average: 7.192%
- Stargazers count: 7.862%
- Dependent packages count: 14.641%
- Maintainers (1)
alpine-v3.15: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.0-r0 (published over 4 years ago)
- Last Synced: 2026-02-03T20:57:54.120Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Forks count: 4.093%
- Stargazers count: 4.572%
- Average: 8.562%
- Dependent packages count: 25.585%
- Maintainers (1)
alpine-v3.16: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.1-r0 (published over 3 years ago)
- Last Synced: 2026-03-02T14:37:29.508Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Forks count: 4.15%
- Stargazers count: 4.889%
- Average: 9.088%
- Dependent packages count: 27.311%
- Maintainers (1)
alpine-v3.17: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.1-r0 (published over 3 years ago)
- Last Synced: 2026-02-03T13:43:48.699Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Forks count: 4.727%
- Stargazers count: 6.31%
- Average: 9.573%
- Dependent packages count: 27.254%
- Maintainers (1)
conda-forge.org: rb-addressable
- Homepage: https://rubygems.org/gems/addressable
- Licenses: Apache-2.0
- Latest release: 2.7.0 (published over 6 years ago)
- Last Synced: 2026-02-02T21:01:38.256Z (29 days ago)
- Versions: 2
- Dependent Packages: 6
- Dependent Repositories: 1
-
Rankings:
- Dependent packages count: 9.024%
- Stargazers count: 10.397%
- Forks count: 10.412%
- Average: 13.48%
- Dependent repos count: 24.088%
alpine-v3.21: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.7-r0 (published over 1 year ago)
- Last Synced: 2026-02-02T21:02:58.812Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.22: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.7-r1 (published 10 months ago)
- Last Synced: 2026-02-02T21:03:11.906Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
ubuntu-22.04: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Licenses:
- Latest release: 2.8.0-3 (published 18 days ago)
- Last Synced: 2026-02-13T13:12:11.929Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
alpine-v3.20: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.6-r1 (published about 2 years ago)
- Last Synced: 2026-02-03T12:17:32.578Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.19: ruby-addressable
An alternative implementation to the URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Licenses: Apache-2.0
- Latest release: 2.8.5-r0 (published over 2 years ago)
- Last Synced: 2026-02-03T13:34:24.036Z (28 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.23: ruby-addressable
An alternative implementation to the URI implementation
debian-12: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: https://packages.debian.org/bookworm/ruby-addressable
- Licenses:
- Latest release: 2.8.1-1 (published 19 days ago)
- Last Synced: 2026-02-12T23:24:26.551Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-20.04: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Licenses:
- Latest release: 2.7.0-1 (published 18 days ago)
- Last Synced: 2026-02-13T07:09:37.186Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
guix: ruby-addressable
Alternative URI implementation
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n12528
- Licenses: asl2.0
- Latest release: 2.8.1 (published about 24 hours ago)
- Last Synced: 2026-03-02T18:51:21.287Z (about 24 hours ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: https://packages.debian.org/bullseye/ruby-addressable
- Licenses:
- Latest release: 2.7.0-2 (published 21 days ago)
- Last Synced: 2026-02-13T08:18:28.219Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.04: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Licenses:
- Latest release: 2.8.1-1 (published 21 days ago)
- Last Synced: 2026-02-11T06:35:05.955Z (21 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.10: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Licenses:
- Latest release: 2.8.1-1 (published 18 days ago)
- Last Synced: 2026-02-13T18:14:33.917Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-10: ruby-addressable
- Homepage: https://github.com/sporkmonger/addressable
- Documentation: https://packages.debian.org/buster/ruby-addressable
- Licenses:
- Latest release: 2.5.2-1 (published 20 days ago)
- Last Synced: 2026-02-13T04:19:09.245Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
Dependencies
- coveralls > 0.7 development
- launchy ~> 2.4, >= 2.4.3 development
- memory_profiler >= 0 development
- rake >= 12.3.3 development
- redcarpet >= 0 development
- rspec ~> 3.8 development
- rspec-its ~> 1.3 development
- simplecov >= 0 development
- yard >= 0 development
- idn-ruby >= 0
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
- actions/checkout v6 composite
- ruby/setup-ruby v1 composite
- rubygems/configure-rubygems-credentials v1.0.0 composite
Score: 35.118605019833154