{"id":22497514,"url":"https://github.com/davidanthoff/pathsanduris.jl","last_synced_at":"2026-02-28T05:52:27.701Z","repository":{"id":266025627,"uuid":"897149214","full_name":"davidanthoff/PathsAndURIs.jl","owner":"davidanthoff","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-06T07:39:07.000Z","size":11,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T00:13:25.963Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidanthoff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-02T05:47:05.000Z","updated_at":"2025-01-06T07:39:10.000Z","dependencies_parsed_at":"2025-01-06T08:43:52.426Z","dependency_job_id":null,"html_url":"https://github.com/davidanthoff/PathsAndURIs.jl","commit_stats":null,"previous_names":["davidanthoff/uris2.jl","davidanthoff/pathsanduris.jl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidanthoff%2FPathsAndURIs.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidanthoff%2FPathsAndURIs.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidanthoff%2FPathsAndURIs.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidanthoff%2FPathsAndURIs.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidanthoff","download_url":"https://codeload.github.com/davidanthoff/PathsAndURIs.jl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245931362,"owners_count":20695954,"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","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":[],"created_at":"2024-12-06T20:24:42.876Z","updated_at":"2026-02-28T05:52:27.631Z","avatar_url":"https://github.com/davidanthoff.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PathsAndURIs.jl\n\nA different take on types for URIs and paths.\n\nThis is more of an experiment at the moment and _not_ production ready. It might eventually be picked up by the language\nserver, where the kind of functionality here would be very useful (and a slightly less developed version of this is already\nused internally).\n\n## Overview\n\nThe core idea is that for different situations different memory layouts for storing a URI a preferable. So this package\nprovides an abstract type `AbstractURI` that represents a URI, and then two different concrete types that can be\nused to store a URI, where each of these two types has a different memory layout.\n\n`URI` stores a URI as a percent encoded string. If the goal is to for example use an URI as a key in a dict, or a similar\ndesign, then this can be be a good choice. The downside of this format is that accessing individual parts is expensive:\nthe string needs to be parsed, and then each part needs to be decoded before one can access any given part.\n\n`URIParts` stores a URI as a collection of strings, i.e. it stores the URI content by part. Each of these parts is\nalready percent decoded, i.e. the field for each part just stores the raw part content as a string. This format is useful\nwhen indvidual parts need to be accessed repeatedly, as no parsing or decoding needs to happen for that. On the flipside,\nthis representation puts more stress on the memory system, as each URI requires multiple strings to be stored.\n\nThe package also has a type `Path` that stores a filesystem path, plus a flag whether the path is a Windows path or not.\nThe path itself is simply stored as a `String`. The main use case is that it becomes easy to convert between a URI with\nthe `file` scheme a filesystem paths.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidanthoff%2Fpathsanduris.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidanthoff%2Fpathsanduris.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidanthoff%2Fpathsanduris.jl/lists"}