3 个不稳定版本
0.2.1 | 2019 年 2 月 14 日 |
---|---|
0.2.0 | 2019 年 2 月 12 日 |
0.1.0 | 2019 年 2 月 6 日 |
在 #uuid 中排名 128
每月下载量 25 次
39KB
849 行
yauuid
yauuid crate 基于 RFC 4122 和 DCE 1.1: 身份验证和安全服务生成和解析 UUID。
用法
将其添加到您的 Cargo.toml
[denpendencies]
yauuid = "0.2"
并将其添加到您的 crate 根目录
extern crate yauuid;
示例
解析简单的 UUID,然后打印版本和变体
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());
}
该库支持 5 种 UUID 版本
名称 | 版本 |
---|---|
Mac | 版本 1:MAC 地址 |
Dce | 版本 2:DCE 安全 |
Md5 | 版本 3:Md5 哈希 |
随机 | 版本 4:随机 |
Sha1 | 版本 5:Sha1 哈希 |
基准测试
越低越好。
基准测试 | 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 |
parse_str
基准测试是 2 倍,to_string
是 1.5 倍。
new_v1
成本相似,但 yauuid
的版本易于使用。不需要时间参数。它已包含在 yauuid::Context
结构体中。
new_v3
、new_v4
、new_v5
基准测试比较了 md5
、RNG
、sha1
性能。
运行 cargo bench
获取基准测试结果。
有关基准测试用例的详细信息,请参阅 benches/bench.rs
。
参考
依赖关系
~1.5MB
~22K SLoC