This module provides utility functions for working with URIs,
according to
Type definitions that are used more than once in this module:
Type definitions that are related to URI:
Syntax according to the URI definition in RFC 3986, for example, "http://www.erlang.org/"
Example: http, https
Represents a file path or directory path
For more information about URI, see
Decodes a possibly hexadecimal encoded URI.
Encodes a hexadecimal encoded URI.
Parses a URI. If no scheme defaults
are provided, the value of the
When parsing a URI with an unknown scheme (that is, a scheme not found in the scheme defaults), a port number must be provided, otherwise the parsing fails.
If the fragment option is
Scheme validation fun is to be defined as follows:
fun(SchemeStr :: string() | binary()) ->
valid | {error, Reason :: term()}.
It is called before scheme string gets converted into scheme atom and thus possible atom leak could be prevented
The scheme portion of the URI gets converted into atom, meaning that atom leak may occur. Specifying a scheme validation fun is recommended unless the URI is already sanitized.
Provides a list of the scheme and their default port numbers supported (by default) by this utility.