iri-string 0.7.10

IRI as string types
Documentation

iri-string

Latest version Documentation

  • 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_std support.
  • 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.
  • 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 std or alloc crate available.
  • std (enabled by default)
    • Enables all std features (such as memory allocations and std::error::Error trait).
    • Requires std crate available.
    • This automatically enables alloc feature.

memchr

  • memchr
    • Enables optimization for internal parsers, using memchr crate.

serde

  • serde
    • Implements Serialize and Deserialize traits for string types.

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

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.