1 unstable release
0.1.0 | Aug 21, 2019 |
---|
#13 in #uniform-resource
28 downloads per month
Used in 2 crates
(via async-coap)
255KB
4K
SLoC
async-coap-uri: Safe, In-place URI Abstraction
This crate provides safe, efficient, full-featured support for using and manipulating Uniform Resource Identifiers.
It differs significantly from the rust-url and uri in that the API was designed to allow for more control over how memory is allocated while also being more convenient to use.
What makes this crate unique is that it provides URI-specific types
that have the same unsized/sized type duality that is used for
&str
/String
, except with specific guarantees on the content,
as well as convenient domain-specific methods to access the URI
components. The API was designed to be easy-to-use while making as few
heap allocations as possible. Most common operations require no
allocations at all, and those that do are provided as a convenience
rather than a fundamental requirement. For example, you can parse and
fully percent-decode a URI without doing a single allocation, including
iterating over percent-decoded path segments and query key-value pairs.
See the crate documentation for more information.
Usage
Add this to your Cargo.toml
:
[dependencies]
async-coap-uri = "0.1.0"
Now, you can use async-coap-uri:
use async_coap_uri::prelude::*;
License
async-coap-uri is released under the Apache 2.0 license.
Copyright (c) 2019 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Disclaimer
This is not an officially supported Google product.
Dependencies
~5MB
~101K SLoC