NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #996 most downloaded on crates.io
A generic URI/IRI handling library compliant with RFC 3986/3987.
Last release 11 months ago
04 Nov 2025
Ships unpredictably
gaps range from 8 days to 13 months
Most releases are documented
notes for 6 of 8 stable releases
3 versions withdrawn
withdrawn after publishing
4 years old
21 releases · first in 2022
One column per quarter.
Deprecated EString::encode_bytes .
serde when only alloc crate feature is enabled.EString::encode_bytes.EStr::encode_byte.Made default port normalization a default for select schemes .
resolve::Resolver and normalize::Normalizer which can be configured to disallow underflow in path resolution and to remove custom default ports in normalization.{Uri, UriRef, Iri, IriRef}::strip_fragment.alloc feature required for memory-allocating types and functions.impl-error feature which, if enabled when std is disabled, implements core::error::Error instead.Hash for Scheme.encoding to pct_enc which stands for "percent-encoding".ParseError not to include input. Changed return types of parse functions as a result.Decode to an iterator. Renamed into_* methods to to_* as a result.EString::encode into encode_{str, bytes}.ConvertError for TryFrom impls.PartialEq and Eq on ParseError, BuildError, and ResolveError.Builder into module build.error in favor of placing error types next to related types.Added EString::{with_capacity, capacity, clear} methods.
EString::{with_capacity, capacity, clear} methods.with_fragment and set_fragment methods to URI/IRI (reference) types.Fixed a bug where {Uri, Iri}::try_from panic when passed a URI/IRI reference that consists of only scheme characters ( #28 ).
{Uri, Iri}::try_from panic when passed a URI/IRI reference that consists of only scheme characters (#28).Iri::to_uri and IriRef::to_uri_ref omit the colon delimiter before a port.Reintroduced a Uri type that represents a URI (always with a scheme).
Uri type that represents a URI (always with a scheme).Iri and IriRef types.net from default features list.From and TryFrom between URI/IRI (reference) types and strings.IUserinfo, IRegName, IPort, IPath, IQuery, IFragment, and IData.Authority and Host to take encoder type parameters which default to URI encoders.IAuthority and IHost that use IRI encoders.Table::{or_ucschar, or_iprivate}.UriRef::is_uri in favor of has_scheme.EString::push_byte with EString::push which takes char as argument.EStr<Path>::segments to segments_if_absolute for clarity.Table::gen to new, and Table::enc to or_pct_encoded.Table::allows to take char as argument.Bump version to 0.3.0-alpha.0
Bump version to 0.3.0-alpha.0
Added support for building, resolving and normalizing URI references.
Uri to UriRef because it represents a URI reference, not a URI (see #19).EStr which represents an encoder determining which characters must be percent-encoded, along with 7 encoders: Userinfo, RegName, Port, Path, Query, Fragment, and Data.EString which is a percent-encoded, growable string.Scheme::{new, new_or_panic} associated functions.Authority::{port_to_u16, socket_addrs} utility methods.Uri::has_{scheme, authority, query, fragment} and Authority::has_{userinfo, port} methods.{EStr, Authority}::EMPTY constants.EStr::{len, is_empty, rsplit_once} methods.ParseError which represents the input type and ParseError::{into, strip}_input methods.net and serde crate features.Uri<&mut [u8]>) and related APIs.ParseErrorKind enum and ParseError::{index, kind} methods.ipv_future and rfc6874bis crate features.Uri<&str>::dup method as UriRef<&str> is now Copy.Scheme::{to_lowercase, eq_lowercase} methods in favor of the new case-insensitive PartialEq implementation on Scheme.Uri::parse and Uri::parse_from into UriRef::parse with generics.Authority is now directly borrowed from the string instead of the UriRef.Uri::{is_relative, is_absolute} in favor of the newly added UriRef::is_uri.Host, renamed HostData to Host, changed Authority::host to return &str, and added Authority::host_parsed which returns Host.Host: Ipv6 is now a tuple variant with a single Ipv6Addr field, and IpvFuture is now a non-exhaustive unit variant.Path type, moved the utility methods Path::{is_absolute, is_rootless, segments} onto EStr<Path>, and changed UriRef::path to return &EStr<Path>.Authority::port to return Option<&EStr<Port>>.UriRef<String>::borrow to return UriRef<&str>.EStr::new to return Option instead and added EStr::new_or_panic.Bump version to 0.2.0-alpha.8
Bump version to 0.2.0-alpha.8
Bump version to 0.2.0-alpha.7
Bump version to 0.2.0-alpha.7
Bump version to 0.2.0-alpha.6
Bump version to 0.2.0-alpha.6
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →