SCRU128 ID is yet another attempt to supersede [UUID] for the users who need decentralized, globally unique time-ordered identifiers. SCRU128 is inspired by [ULID] and [KSUID] and has the following features:
```rust use scru128::{scru128, scru128_string};
// generate a new identifier object let x = scru128(); println!("{}", x); // e.g. "036Z951MHJIKZIK2GSL81GR7L" println!("{}", x.to_u128()); // as a 128-bit unsigned integer
// generate a textual representation directly println!("{}", scru128_string()); // e.g. "036Z951MHZX67T63MQ9XE6Q0J" ```
See [SCRU128 Specification] for details.
Default features:
std
enables the primary scru128()
and scru128_string()
functions and
configures Scru128Generator
with the system clock and default random number
generator. Without std
, this crate provides limited functionality available
under no_std
environments. Note that the no_std
support is experimental.Optional features:
serde
enables serialization/deserialization via serde.Licensed under the Apache License, Version 2.0.