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 basic SCRU128 primitives available under no_std
environments.rand
enables a blanket implementation for rand::RngCore
to use rand
and
any other conforming random number generators with Scru128Generator
.default_rng
(implies std
and rand
) provides the default random number
generator for Scru128Generator
and enables the Scru128Generator::new()
constructor.global_gen
(implies default_rng
) provides the process-wide default SCRU128
generator and enables the new()
and new_string()
functions.Optional features:
serde
enables serialization/deserialization of Scru128Id
via serde.Licensed under the Apache License, Version 2.0.