33 releases
0.7.7 | Oct 11, 2024 |
---|---|
0.7.2 | Apr 14, 2024 |
0.7.0 | Sep 14, 2022 |
0.6.0 | Jul 14, 2022 |
0.1.1 | May 5, 2018 |
#104 in Rust patterns
514,659 downloads per month
Used in 103 crates
(45 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_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.
- 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
std
oralloc
crate available.
std
(enabled by default)- Enables all
std
features (such as memory allocations andstd::error::Error
trait). - Requires
std
crate available. - This automatically enables
alloc
feature.
- Enables all
memchr
memchr
- Enables optimization for internal parsers, using
memchr
crate.
- Enables optimization for internal parsers, using
serde
serde
- Implements
Serialize
andDeserialize
traits 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.