{"id":13565284,"url":"https://github.com/anthonynsimon/jurl","last_synced_at":"2025-10-18T18:38:41.187Z","repository":{"id":72610449,"uuid":"79966610","full_name":"anthonynsimon/jurl","owner":"anthonynsimon","description":"Fast and simple URL parsing for Java, with UTF-8 and path resolving support","archived":false,"fork":false,"pushed_at":"2019-04-10T17:29:06.000Z","size":216,"stargazers_count":88,"open_issues_count":4,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-24T09:29:27.380Z","etag":null,"topics":["ipv6","java","path","resolver","unicode","uri","url-parsing","utf-8"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anthonynsimon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-01-24T23:55:16.000Z","updated_at":"2025-08-17T10:30:36.000Z","dependencies_parsed_at":"2023-05-13T03:15:39.898Z","dependency_job_id":null,"html_url":"https://github.com/anthonynsimon/jurl","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/anthonynsimon/jurl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonynsimon%2Fjurl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonynsimon%2Fjurl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonynsimon%2Fjurl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonynsimon%2Fjurl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anthonynsimon","download_url":"https://codeload.github.com/anthonynsimon/jurl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonynsimon%2Fjurl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278592817,"owners_count":26012382,"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-10-06T02:00:05.630Z","response_time":65,"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":["ipv6","java","path","resolver","unicode","uri","url-parsing","utf-8"],"created_at":"2024-08-01T13:01:43.757Z","updated_at":"2025-10-06T10:21:45.418Z","avatar_url":"https://github.com/anthonynsimon.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# jurl\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e8a7715455e44c73be897eaa131a8054)](https://app.codacy.com/app/anthonynajjars/jurl?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=anthonynsimon/jurl\u0026utm_campaign=badger)\n[![Build Status](https://travis-ci.org/anthonynsimon/jurl.svg?branch=master)](https://travis-ci.org/anthonynsimon/jurl/builds) \n[![Test Coverage](https://codecov.io/gh/anthonynsimon/jurl/branch/master/graph/badge.svg)](https://codecov.io/gh/anthonynsimon/jurl) \n[![MIT License](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://github.com/anthonynsimon/jurl/blob/master/LICENSE)\n[![](https://jitpack.io/v/anthonynsimon/jurl.svg)](https://jitpack.io/#anthonynsimon/jurl)  \n\nFast and simple URL parsing for Java, with UTF-8 and path resolving support. Based on Go's excellent `net/url` lib.\n\n## Why\n- Easy to use API - you just want to parse a URL after all.\n- Fast, 4+ million URLs per second on commodity hardware.\n- UTF-8 encoding and decoding.\n- Supports path resolving between URLs (absolute and relative).\n- Good test coverage with plenty of edge cases.\n- Supports IPv4 and IPv6.\n- No external dependencies.\n\n## Getting Started\n\nExample:\n```java\n // Parse URLs\nURL base = URL.parse(\"https://user:secret@example♬.com/path/to/my/dir#about\");\nURL ref = URL.parse(\"./../file.html?search=germany\u0026language=de_DE\");\n\n// Parsed base\nbase.getScheme(); // https\nbase.getUsername(); // user\nbase.getPassword(); // secret\nbase.getHost(); // example♬.com\nbase.getPath(); // /path/to/my/dir\nbase.getFragment(); // about\n\n// Parsed reference\nref.getPath(); // ./../file.html\nref.getQueryPairs(); // Map\u003cString, String\u003e = {search=germany, language=de_DE}\n\n// Resolve them!\nURL resolved = base.resolveReference(ref); // https://user:secret@example♬.com/path/to/file.html?search=germany\u0026language=de_DE\nresolved.getPath(); // /path/to/file.html\n\n// Escaped UTF-8 result\nresolved.toString(); // https://user:secret@example%E2%99%AC.com/path/to/file.html?search=germany\u0026language=de_DE\n\n```\n\n## Setup\n\n### Add the JitPack repository to your build file.\n\nFor gradle:\n```\nallprojects {\n    repositories {\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\nFor maven:\n```\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003ejitpack.io\u003c/id\u003e\n        \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n### Add the dependency:\n\nFor gradle:\n```\ndependencies {\n    compile 'com.github.anthonynsimon:jurl:v0.4.2'\n}\n```\n\nFor maven:\n```\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.anthonynsimon\u003c/groupId\u003e\n        \u003cartifactId\u003ejurl\u003c/artifactId\u003e\n        \u003cversion\u003ev0.4.2\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## Issues\n\nThe recommended medium to report and track issues is by opening one on Github.\n\n## Contributing\n\nWant to hack on the project? Any kind of contribution is welcome! Simply follow the next steps:\n\n- Fork the project.\n- Create a new branch.\n- Make your changes and write tests when practical.\n- Commit your changes to the new branch.\n- Send a pull request, it will be reviewed shortly.\n\nIn case you want to add a feature, please create a new issue and briefly explain what the feature would consist of. For bugs or requests, before creating an issue please check if one has already been created for it.\n\n## License\n\nThis project is licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonynsimon%2Fjurl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanthonynsimon%2Fjurl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonynsimon%2Fjurl/lists"}