35 releases
| 0.7.9 | Nov 4, 2025 |
|---|---|
| 0.7.8 | Mar 20, 2025 |
| 0.7.7 | Oct 11, 2024 |
| 0.7.2 | Apr 14, 2024 |
| 0.1.1 | May 5, 2018 |
#11 in Web programming
8,283,257 downloads per month
Used in 11,596 crates
(64 directly)
560KB
8K
SLoC
iri-string
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 must pass on develop and master branches.
No automated online CI is set up (since they consumes credit too fast), so run
cargo make manual-ci-all locally before committing to these branches.
On other branches, tests and some lints (such as dead_code) are allowed to
fail, but all commits must be successfully compilable and must be formatted.
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.