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 // generate a new identifier object let x = scru128::new(); println!("{x}"); // e.g., "036z951mhjikzik2gsl81gr7l" println!("{}", x.to_u128()); // as a 128-bit unsigned integer
// generate a textual representation directly println!("{}", scru128::new_string()); // e.g., "036z951mhzx67t63mq9xe6q0j" ```
See [SCRU128 Specification] for details.
Default features:
std
configures Scru128Generator
with the system clock. Without std
, this
crate provides limited functionality available under no_std
environments.rand
enables a blanket implementation for rand::RngCore
to use the
conforming random number generators with Scru128Generator
.default_rng
(implies std
and rand
) configures Scru128Generator
with
the default random number generator.global_gen
(implies default_rng
) enables the process-wide default global
generator and the new()
and new_string()
functions.Optional features:
serde
enables serialization/deserialization via serde.Licensed under the Apache License, Version 2.0.