iri-string
- Minimum supported Rust version: 1.60
String types for IRIs (Internationalized Resource Identifiers) and URIs (Uniform Resource Identifiers).
See the documentation for details.
Features
no_stdsupport.- String types (both owned and borrowed) for RFC 3986 URIs and RFC 3987 IRIs.
- Native slice types, so highly operable with
Cow,ToOwned, etc. - URIs/IRIs validation.
- Conversions between URIs and IRIs.
- Decomposition into components.
- Native slice types, so highly operable with
- IRI reference resolution algorithm.
- IRI normalization algorithm.
- Masking password part of an IRI (optional and not automatic).
- Percent encoding of user-provided strings.
- IRI builder.
- RFC 6570 URI Template.
Feature flags
Direct
alloc(enabled by default)- Enables types and functions which require memory allocation.
- Requires
stdoralloccrate available.
std(enabled by default)- Enables all
stdfeatures (such as memory allocations andstd::error::Errortrait). - Requires
stdcrate available. - This automatically enables
allocfeature.
- Enables all
memchr
memchr- Enables optimization for internal parsers, using
memchrcrate.
- Enables optimization for internal parsers, using
serde
serde- Implements
SerializeandDeserializetraits for string types.
- Implements
CI
CI is running on the main author's private instance of
Woodpecker CI, and CI runs should pass on
master and develop branches.
While the instance is not public, anyone can run the CI tests if you have (or they deploy) their own Woodpecker CI instance.
The reason not to use free CI services are:
- Running tests for multiple combinations of feature flags and toolchain versions can cause service credits to be consumed very quickly,
- I (the main author) don't like to depend on proprietary services, and
- I'm not using git repository hosting services (including GitHub and GitLab) as a primary remote, and don't like to depend on CI runners tied to them even if they are free software.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE.txt or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT.txt or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.