| Crates.io | yuri |
| lib.rs | yuri |
| version | 0.1.0 |
| created_at | 2024-10-13 11:20:37.186447+00 |
| updated_at | 2024-11-02 00:03:38.73592+00 |
| description | no_std alloc-free URI Parser |
| homepage | https://github.com/yaws-rs/ytypes |
| repository | https://github.com/yaws-rs/ytypes |
| max_upload_size | |
| id | 1407281 |
| size | 58,650 |

no_std, alloc-free permissive URI Parser & Builder
let s = "https://foo:secret@foobar.test:666/?q=a&m=s#fragemnt";
let uri = yuri::Uri::new(s).expect("Failed to parse URI");
Optimise on size and being permissive and flexible minimally parsing in no_std & alloc-free environments.
Various RFCs / standards & intepretations complicate the picture,
e.g. punycode and this is left to the downstream consumer currently to validate.
We may in the future support opt-in further validation (e.g. IDNA), which the downstream consumer must consider.
In MacBook M1 13":
| Scenario | Criterion |
|---|---|
| yuri::Uri New full HTTPs URL | [65.657 ns 65.751 ns 65.846 ns] |
| RFC | Status | Description |
|---|---|---|
| rfc3986 | must | 2005 / Uniform Resource Identifier (URI): Generic Syntax |
| rfc6570 | maybe | 2012 / URI Template / variable expansion |
| rfc8820 | ? | 2020 / URI Design and Ownership |
| rfc8615 | ? | 2019 / Well-Known Uniform Resource Identifiers (HTTP) |