| Crates.io | yauuid |
| lib.rs | yauuid |
| version | 0.2.1 |
| created_at | 2019-02-06 20:55:26.552555+00 |
| updated_at | 2019-02-14 12:27:04.052048+00 |
| description | Yet another library to generate and parse UUIDs |
| homepage | |
| repository | https://github.com/condy0919/uuid |
| max_upload_size | |
| id | 113208 |
| size | 43,585 |
The uuid crate generates and parse UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
Add this to your Cargo.toml:
[denpendencies]
yauuid = "0.2"
and this to your crate root:
extern crate yauuid;
To parse a simple UUID, then print the version and variant:
extern crate yauuid;
use yauuid::Uuid;
use std::str::FromStr;
fn main() {
let u = Uuid::from_str("urn:uuid:123e4567-e89b-12d3-a456-426655440000").unwrap();
println!("version = {}, variant = {}", u.version(), u.variant());
}
The library supports 5 versions of UUID:
| Name | Version |
|---|---|
| Mac | Version 1: Mac address |
| Dce | Version 2: DCE Security |
| Md5 | Version 3: Md5 hash |
| Random | Version 4: Random |
| Sha1 | Version 5: Sha1 hash |
Lower is better.
| benchmark | uuid-rs (ns) | yauuid (ns) |
|---|---|---|
| parse_str | 70.240 | 33.176 |
| to_string | 107.48 | 75.387 |
| new_v1 | 6.1016 | 6.1530 |
| new_v3 | 211.16 | 174.33 |
| new_v4 | 29.946 | 30.557 |
| new_v5 | 209.24 | 212.94 |
The parse_str benchmark is 2x, and to_string is 1.5x.
The new_v1 costs are similar, but yauuid's version is easy to use.
No time parameters required. It has been included in yauuid::Context struct.
The new_v3, new_v4, new_v5 benchmark md5, RNG, sha1 performance instead.
Run cargo bench to get the benchmark result.
See benches/bench.rs for benchmark cases detail.