String types for URIs/IRIs.
  • Rust 99.7%
  • Shell 0.3%
Find a file
YOSHIOKA Takuma f3add195e4
All checks were successful
ci/woodpecker/push/check-msrv-consistency Pipeline was successful
ci/woodpecker/push/check-doc-docs-rs Pipeline was successful
ci/woodpecker/push/check-doc-stable Pipeline was successful
ci/woodpecker/push/test-modern/1 Pipeline was successful
ci/woodpecker/push/check-format Pipeline was successful
ci/woodpecker/push/test-modern/2 Pipeline was successful
ci/woodpecker/push/test-modern/3 Pipeline was successful
ci/woodpecker/push/test-msrv/10 Pipeline was successful
ci/woodpecker/push/test-msrv/8 Pipeline was successful
ci/woodpecker/push/test-msrv/7 Pipeline was successful
ci/woodpecker/push/test-msrv/5 Pipeline was successful
ci/woodpecker/push/test-msrv/2 Pipeline was successful
ci/woodpecker/push/test-msrv/1 Pipeline was successful
ci/woodpecker/push/test-msrv/11 Pipeline was successful
ci/woodpecker/push/test-msrv/4 Pipeline was successful
ci/woodpecker/push/test-msrv/13 Pipeline was successful
ci/woodpecker/push/check-doc-msrv/2 Pipeline was successful
ci/woodpecker/push/check-doc-msrv/4 Pipeline was successful
ci/woodpecker/push/check-doc-msrv/5 Pipeline was successful
ci/woodpecker/push/check-doc-msrv/1 Pipeline was successful
ci/woodpecker/push/check-doc-msrv/3 Pipeline was successful
ci/woodpecker/push/test-msrv/9 Pipeline was successful
ci/woodpecker/push/test-msrv/14 Pipeline was successful
ci/woodpecker/push/test-msrv/16 Pipeline was successful
ci/woodpecker/push/test-msrv/3 Pipeline was successful
ci/woodpecker/push/test-msrv/17 Pipeline was successful
ci/woodpecker/push/test-msrv/12 Pipeline was successful
ci/woodpecker/push/test-msrv/6 Pipeline was successful
ci/woodpecker/push/test-msrv/23 Pipeline was successful
ci/woodpecker/push/test-msrv/19 Pipeline was successful
ci/woodpecker/push/test-msrv/20 Pipeline was successful
ci/woodpecker/push/test-msrv/25 Pipeline was successful
ci/woodpecker/push/test-msrv/26 Pipeline was successful
ci/woodpecker/push/test-msrv/22 Pipeline was successful
ci/woodpecker/push/test-msrv/15 Pipeline was successful
ci/woodpecker/push/test-msrv/18 Pipeline was successful
ci/woodpecker/push/test-msrv/24 Pipeline was successful
ci/woodpecker/push/test-msrv/27 Pipeline was successful
ci/woodpecker/push/test-msrv/21 Pipeline was successful
doc: fix mistake
2026-02-16 06:07:56 +09:00
.woodpecker test(ci): make sure MSRV tests pass with the default lockfile 2025-12-29 09:52:38 +09:00
examples Stop attempting to follow WHATWG spec and add more normalization 2022-09-14 07:22:48 +09:00
iri-string-benches chore: prevent test-only crates from being published 2025-12-26 04:37:44 +09:00
iri-string-tests chore: prevent test-only crates from being published 2025-12-26 04:37:44 +09:00
src doc: fix mistake 2026-02-16 06:07:56 +09:00
tests doc: update URIs to IETF RFC documents 2025-12-29 05:36:43 +09:00
.editorconfig Add basic files 2019-05-07 02:17:47 +09:00
.gitignore Add Cargo.lock 2025-12-26 02:41:04 +09:00
.gitmodules Add tests that uses uritemplate-test repository 2022-08-29 05:01:44 +09:00
Cargo.lock Bump version to v0.7.10 2025-12-29 09:56:03 +09:00
Cargo.toml Bump version to v0.7.10 2025-12-29 09:56:03 +09:00
CHANGELOG.md Add a CHANGELOG entry about reduced redundant validation 2025-12-30 03:52:43 +09:00
LICENSE-APACHE.txt Add basic files 2019-05-07 02:17:47 +09:00
LICENSE-MIT.txt Update copyright year 2024-04-12 23:02:19 +09:00
README.md doc: update description about CI 2025-12-29 08:45:20 +09:00

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.