{"id":30713150,"url":"https://github.com/gemmaro/mruby-uriparser","last_synced_at":"2025-09-03T03:12:56.585Z","repository":{"id":310111597,"uuid":"1038335769","full_name":"gemmaro/mruby-uriparser","owner":"gemmaro","description":"URI parsing for mruby","archived":false,"fork":false,"pushed_at":"2025-08-30T00:26:49.000Z","size":93,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T06:50:16.361Z","etag":null,"topics":["mruby","parser","uri"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gemmaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-15T02:34:10.000Z","updated_at":"2025-08-30T00:26:53.000Z","dependencies_parsed_at":"2025-08-16T15:00:49.328Z","dependency_job_id":null,"html_url":"https://github.com/gemmaro/mruby-uriparser","commit_stats":null,"previous_names":["gemmaro/mruby-uriparser"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gemmaro/mruby-uriparser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemmaro%2Fmruby-uriparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemmaro%2Fmruby-uriparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemmaro%2Fmruby-uriparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemmaro%2Fmruby-uriparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gemmaro","download_url":"https://codeload.github.com/gemmaro/mruby-uriparser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemmaro%2Fmruby-uriparser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273382250,"owners_count":25095424,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mruby","parser","uri"],"created_at":"2025-09-03T03:12:55.202Z","updated_at":"2025-09-03T03:12:56.578Z","avatar_url":"https://github.com/gemmaro.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mruby uriparser\n\nmruby uriparser provides [uriparser](https://uriparser.github.io/) bindings for [mruby](https://mruby.org/).\n\n## Installation\n\nAdd the following to your `build_config.rb`:\n\n```ruby\nconf.linker.libraries \u003c\u003c 'uriparser'\n```\n\n## Usage\n\n```ruby\nstr = \"http://user:pass@example.com:8000/some-path?some-query#some-fragment\"\nuri = URIParser.parse(str)\nuri.class    #=\u003e URIParser::URI\nuri.scheme   #=\u003e \"http\"\nuri.userinfo #=\u003e \"user:pass\"\nuri.host     #=\u003e \"example.com\"\nuri.port     #=\u003e \"8000\"\nuri.query    #=\u003e \"some-query\"\nuri.fragment #=\u003e \"some-fragment\"\nuri.to_s     #=\u003e same as str\n```\n\nYou may use a constant alias for convenience:\n\n```ruby\nURI = URIParser::URI\n```\n\n## Features\n\nBelow is a comparison of supported features with CRuby's URI gem.\nA dash (`-`) indicates not supported or no plans to support.\n\n| mruby uriparser                                       | CRuby URI gem                                       |\n|-------------------------------------------------------|-----------------------------------------------------|\n| `URIParser::URI#decode_www_form`[^1]                  | `URI.decode_www_form`                               |\n| -                                                     | `URI.decode_www_form_component`                     |\n| `URIParser.encode_www_form`[^2]                       | `URI.encode_www_form`                               |\n| -                                                     | `URI.encode_www_form_component`                     |\n| -                                                     | `URI.extract`[^4]                                   |\n| `URIParser.join`, `URIParser::URI.join`               | `URI.join`                                          |\n| `URIParser.parse`, `URIParser::URI.parse`             | `URI.parse`                                         |\n| -                                                     | `URI.regexp`[^3]                                    |\n| -                                                     | `URI.split`                                         |\n| -                                                     | `URI::UNSAFE`                                       |\n| -                                                     | `URI::Generic.build`                                |\n| -                                                     | `URI::Generic.build2`                               |\n| -                                                     | `URI::Generic.component`                            |\n| -                                                     | `URI::Generic.default_port`                         |\n| -                                                     | `URI::Generic.new`                                  |\n| -                                                     | `URI::Generic.use_registry`                         |\n| `URIParser::URI#merge`, `URIParser::URI#@+`[^5]       | `URI::Generic#merge`, `URI::Generic#@+`             |\n| `URIParser::URI#route_from`, `URIParser::URI#@-`      | `URI::Generic#route_from`, `URI::Generic#@-`        |\n| -                                                     | `URI::Generic#==`                                   |\n| `URIParser::URI#absolute`, `URIParser::URI#absolute?` | `URI::Generic#absolute`, `URI::Generic#absolute?`   |\n| -                                                     | `URI::Generic#coerce`                               |\n| -                                                     | `URI::Generic#component`                            |\n| -                                                     | `URI::Generic#find_proxy`                           |\n| `URIParser::URI#fragment`                             | `URI::Generic#fragment`                             |\n| -                                                     | `URI::Generic#fragment=`                            |\n| `URIParser::URI#hierarchical?`                        | `URI::Generic#hierarchical?`                        |\n| -                                                     | `URI::Generic#host`                                 |\n| -                                                     | `URI::Generic#host=`                                |\n| `URIParser::URI#hostname`                             | `URI::Generic#hostname`                             |\n| -                                                     | `URI::Generic#hostname=`                            |\n| `URIParser::URI#merge!`                               | `URI::Generic#merge!`                               |\n| `URIParser::URI#normalize!`                           | `URI::Generic#normalize`, `URI::Generic#normalize!` |\n| -                                                     | `URI::Generic#opaque`                               |\n| -                                                     | `URI::Generic#opaque=`                              |\n| -                                                     | `URI::Generic#parser`                               |\n| -                                                     | `URI::Generic#password`                             |\n| -                                                     | `URI::Generic#password=`                            |\n| -                                                     | `URI::Generic#path`                                 |\n| -                                                     | `URI::Generic#path=`                                |\n| -                                                     | `URI::Generic#port`                                 |\n| -                                                     | `URI::Generic#port=`                                |\n| `URIParser::URI#query`                                | `URI::Generic#query`                                |\n| -                                                     | `URI::Generic#query=`                               |\n| -                                                     | `URI::Generic#registry`                             |\n| -                                                     | `URI::Generic#registry=`                            |\n| `URIParser::URI#relative?`                            | `URI::Generic#relative?`                            |\n| `URIParser::URI#route_to`                             | `URI::Generic#route_to`                             |\n| `URIParser::URI#scheme`                               | `URI::Generic#scheme`                               |\n| -                                                     | `URI::Generic#scheme=`                              |\n| -                                                     | `URI::Generic#select`                               |\n| `URIParser::URI#to_s`                                 | `URI::Generic#to_s`                                 |\n| -                                                     | `URI::Generic#user`                                 |\n| -                                                     | `URI::Generic#user=`                                |\n| `URIParser::URI#userinfo`                             | `URI::Generic#userinfo`                             |\n| -                                                     | `URI::Generic#userinfo=`                            |\n| -                                                     | `URI::Generic::COMPONENT`                           |\n| -                                                     | `URI::Generic::DEFAULT_PORT`                        |\n\n[^1]: No `enc=Encoding::UTF_8` parameter as in CRuby's URI gem.\n\n[^2]: Only supports `Array[String, String | nil]` for `enum`. No `enc=nil` parameter.\n\n[^3]: Obsolete since Ruby 2.2.\n\n[^4]: Obsolete since Ruby 2.2.\n\n[^5]: Relative path must be a URI. See API docs.\n\nRefer to the API documentation for details.\n\n## Running Tests\n\nTo run tests:\n\n```shell\nrake --directory /path/to/mruby all test MRUBY_CONFIG=$PWD/build_config.rb\n```\n\nAlternatively, use the `test/run` script with `MRUBY_SRC` set in your `.env` file.\n\n## Prior Work\n\nSee [mruby-uri-parser](https://github.com/Asmod4n/mruby-uri-parser), which uses [uri\\_parser](https://github.com/Zewo/uri_parser).\n\n## License\n\nCopyright (C) 2025  gemmaro\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemmaro%2Fmruby-uriparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemmaro%2Fmruby-uriparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemmaro%2Fmruby-uriparser/lists"}