21个版本 (6个稳定版)
1.1.3 | 2024年7月13日 |
---|---|
1.1.2 | 2024年2月3日 |
1.1.1 | 2024年1月31日 |
1.1.0 | 2023年9月11日 |
0.2.2 | 2017年7月28日 |
11 in 算法
每月252,010次下载
用于 258 个crate(136个直接使用)
42KB
701 行
ulid-rs
这是ulid项目的Rust实现,该项目提供通用唯一字典序排序标识符。
快速开始
use ulid::Ulid;
// Generate a ulid
let ulid = Ulid::new();
// Generate a string for a ulid
let s = ulid.to_string();
// Create from a String
let res = Ulid::from_string(&s);
assert_eq!(ulid, res.unwrap());
crate功能
std
(默认):用于切换是否使用std
和rand
。禁用此标志以支持#[no_std]
。serde
:通过serde
启用对Ulid
类型的序列化和反序列化。ULIDs使用ULID标准中定义的26个字符的规范表示进行序列化。提供了一个可选的ulid_as_u128
模块,它通过Ulid
的内部u128
原始类型启用序列化。有关更多信息,请参阅文档和serde文档。uuid
:通过uuid
crate的std::convert::From
trait实现ULIDs和UUIDs之间的不可失败转换。
基准测试
基准测试在我的桌面电脑上运行(Win 10/WSL2 Ubuntu;Ryzen 7 5950x)。使用cargo bench
运行它们。
test bench_from_string ... bench: 13 ns/iter (+/- 0)
test bench_from_time ... bench: 13 ns/iter (+/- 0)
test bench_generator_generate ... bench: 29 ns/iter (+/- 0)
test bench_new ... bench: 31 ns/iter (+/- 1)
test bench_to_str ... bench: 7 ns/iter (+/- 0)
test bench_to_string ... bench: 19 ns/iter (+/- 0)
依赖项
~0–1MB
~23K SLoC