Skip to content

Porges/oxiri

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OxIRI

actions status Latest Version Released API docs

OxIRI is a simple and fast implementation of IRIs based on RFC 3987.

It allows zero stack allocation IRI validation and resolution.

Example:

use oxiri::Iri;

// Parse and validate base IRI
let base_iri = Iri::parse("http://foo.com/bar/baz").unwrap();

// Validate and resolve relative IRI
let iri = base_iri.resolve("bat#foo").unwrap();
assert_eq!("http://foo.com/bar/bat#foo", iri.as_str());

// Extract IRI components
assert_eq!(iri.scheme(), "http");
assert_eq!(iri.authority(), Some("foo.com"));
assert_eq!(iri.path(), "/bar/bat");
assert_eq!(iri.query(), None);
assert_eq!(iri.fragment(), Some("foo"));

If serde is available, Iri and IriRef implement the Serialize and Deserialize traits and encode the IRI as a string.

License

This project is licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or <http://www.apache.org/licenses/LICENSE-2.0>)
  • MIT license (LICENSE-MIT or <http://opensource.org/licenses/MIT>)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in OxIRI by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Simple and fast implementation of IRI validation and relative IRI resolution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 94.2%
  • Python 5.8%