Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 1.19 KB

README.md

File metadata and controls

54 lines (38 loc) · 1.19 KB

Auris, URI parser for Rust

crates.io

  • Uses only safe features in rust
  • Working towards rfc2396 & rfc3986 compliance

Parses structure:

    foo://example.com:8042/over/there?name=ferret#nose
    \_/   \______________/\_________/ \_________/ \__/
     |           |            |            |        |
  scheme     authority       path        query   fragment

Usage

use auris::URI;

"postgres://user:password@host".parse::<URI<String>>();

"https://crates.io/crates/auris".parse::<URI<String>>();

Query strings

We also parse query strings into HashMaps:

"postgres://user:[email protected]/db?replication=true".parse::<URI<String>>();

In the case of duplicated query string tags the last one wins:

"scheme://host/path?a=1&a=2".parse::<URI<String>>();

Documentation

Todo

  • Ports
  • Split up into multiple files
  • Domains with .
  • Rendering of URIs and Authority with fmt::Display
  • Net loc compliance
  • Parsing IPv4, IPv6
  • Parsing fragments
  • Percent encoding and decoding
  • QuickCheck?