URI.ByteString aims to be an RFC3986 compliant URI parser that uses
efficient ByteStrings for parsing and representing the data. This
module provides a URI datatype as well as a parser and serializer.
Note that this library is an early release and may have issues. It is
currently being used in production and no issues have been
encountered, however. Please report any issues encountered to the
issue tracker.
This module also provides analogs to Lens over the various types in
this library. These are written in a generic way to avoid a dependency
on any particular lens library. You should be able to use these with a
number of packages including lens and lens-family-core.
Strict URI Parser config. Follows RFC3986 as-specified. Use this
if you can be certain that your URIs are properly encoded or if you
want parsing to fail if they deviate from the spec at all.
There are some urls that you'll encounter which defy the spec, such
as those with square brackets in the query string. If you must be
able to parse those, you can use "laxURIParserOptions" or specify your own
Similar to serializeURIRef but performs configurable degrees of
URI normalization. If your goal is the fastest serialization speed
possible, serializeURIRef will be fine. If you intend on
comparing URIs (say for caching purposes), you'll want to use this.