Releases: yescallop/fluent-uri-rs
Releases · yescallop/fluent-uri-rs
fluent-uri v0.2.0
Highlights
- Added support for building, resolving and normalizing URI references.
- Renamed
Uri
toUriRef
because it represents a URI reference, not a URI (see #19). - Added a type parameter on
EStr
which represents an encoder determining which characters must be percent-encoded, along with 7 encoders:Userinfo
,RegName
,Port
,Path
,Query
,Fragment
, andData
. - Added
EString
which is a percent-encoded, growable string. - Dropped all unsafe code.
Other changes
Added
- Implemented appropriate traits on all types.
- Added
Scheme::{new, new_or_panic}
associated functions. - Added
Authority::{port_to_u16, socket_addrs}
utility methods. - Added
Uri::has_{scheme, authority, query, fragment}
andAuthority::has_{userinfo, port}
methods. - Added
{EStr, Authority}::EMPTY
constants. - Added
EStr::{len, is_empty, rsplit_once}
methods. - Added a type parameter on
ParseError
which represents the input type andParseError::{into, strip}_input
methods. - Added
net
andserde
crate features.
Removed
- Removed in-place mutable variant of URI reference (
Uri<&mut [u8]>
) and related APIs. - Removed
ParseErrorKind
enum andParseError::{index, kind}
methods. - Removed
ipv_future
andrfc6874bis
crate features. - Removed
Uri<&str>::dup
method asUriRef<&str>
is nowCopy
. - Removed
Scheme::{to_lowercase, eq_lowercase}
methods in favor of the new case-insensitivePartialEq
implementation onScheme
.
Changed
- Merged
Uri::parse
andUri::parse_from
intoUriRef::parse
with generics. Authority
is now directly borrowed from the string instead of theUriRef
.- Removed
Uri::{is_relative, is_absolute}
in favor of the newly addedUriRef::is_uri
. - Removed
Host
, renamedHostData
toHost
, changedAuthority::host
to return&str
, and addedAuthority::host_parsed
which returnsHost
. - Changed
Host
:Ipv6
is now a tuple variant with a singleIpv6Addr
field, andIpvFuture
is now a non-exhaustive unit variant. - Removed the dedicated
Path
type, moved the utility methodsPath::{is_absolute, is_rootless, segments}
ontoEStr<Path>
, and changedUriRef::path
to return&EStr<Path>
. - Changed
Authority::port
to returnOption<&EStr<Port>>
. - Changed
UriRef<String>::borrow
to returnUriRef<&str>
. - Changed
EStr::new
to returnOption
instead and addedEStr::new_or_panic
. - Changed module structure.
- Extracted a code pattern into the borrow-or-share crate.
- Bumped MSRV to 1.65 (was 1.59).
- Reworked documentation.
v0.1.4
v0.1.3
This is the de facto first release of fluent-uri
.
Change log:
- Introduced generics in
Uri
. u32
indexes instead of slices are stored internally.- Multiple bugs found when fuzzing the crate against other parsers are now fixed.
- Removed a bunch of unnecessary APIs to ensure a minimal and future-proof crate.
- Added two feature flags for enabling the parsing of IPvFuture and IPv6 scoped addresses.
- Refined documentations.