iri-string

Crates.ioiri-string
lib.rsiri-string
version0.7.7
sourcesrc
created_at2018-05-04 11:19:06.028951
updated_at2024-10-11 14:45:48.367147
descriptionIRI as string types
homepage
repositoryhttps://github.com/lo48576/iri-string
max_upload_size
id63720
size797,407
YOSHIOKA Takuma (lo48576)

documentation

README

iri-string

Latest version Documentation Minimum rustc 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 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

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.

Commit count: 759

cargo fmt