SCRU128: Sortable, Clock and Random number-based Unique identifier
SCRU128 ID is yet another attempt to supersede UUID in the use cases that need decentralized, globally unique time-ordered identifiers. SCRU128 is inspired by ULID and KSUID and has the following features:
- 128-bit unsigned integer type
- Sortable by generation time (as integer and as text)
- 26-digit case-insensitive portable textual representation
- 44-bit biased millisecond timestamp that ensures remaining life of 550 years
- Up to 268 million time-ordered but unpredictable unique IDs per millisecond
- 84-bit layered randomness for collision resistance
use ;
// generate a new identifier object
let x = scru128;
println!; // e.g. "00S6GVKR1MH58KE72EJD87SDOO"
println!; // as a 128-bit unsigned integer
// generate a textual representation directly
println!; // e.g. "00S6GVKR3F7R79I72EJF0J4RGC"
See SCRU128 Specification for details.
Optional features
log- Enables logging via the log crate.serde- Enables serialization/deserialization via serde.
License
Licensed under the Apache License, Version 2.0.