Crates.io | scru128 |
lib.rs | scru128 |
version | 3.1.0 |
source | src |
created_at | 2021-10-09 02:33:02.527002 |
updated_at | 2024-09-07 10:34:02.124104 |
description | SCRU128: Sortable, Clock and Random number-based Unique identifier |
homepage | |
repository | https://github.com/scru128/rust |
max_upload_size | |
id | 462621 |
size | 74,952 |
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:
// 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 an adapter for rand::RngCore
to use rand
and any other
conforming random number generators with Scru128Generator
.default_rng
(implies std
) 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.