You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a Rust implementation of the ulid project which provides
Universally Unique Lexicographically Sortable Identifiers.
Quickstart
use ulid::Ulid;// Generate a ulidlet ulid = Ulid::new();// Generate a string for a ulidlet s = ulid.to_string();// Create from a Stringlet res = Ulid::from_string(&s);assert_eq!(ulid, res.unwrap());
Crate Features
std (default): Flag to toggle use of std and rand. Disable this flag for #[no_std] support.
serde: Enables serialization and deserialization of Ulid types via serde. ULIDs are serialized using their canonical 26-character representation as defined in the ULID standard. An optional ulid_as_u128 module is provided, which enables serialization through an Ulid's inner u128 primitive type. See the documentation and serde docs for more information.
uuid: Implements infallible conversions between ULIDs and UUIDs from the uuid crate via the std::convert::From trait.
Benchmark
Benchmarks were run on my desktop (Win 10/WSL2 Ubuntu; Ryzen 7 5950x). Run them yourself with 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)