Euui - Extended Universal Unique Identifier
Description
Euui is a Rust library (no_std compatible) that provides a 512-bit (64 bytes) unique identifier, which is 4 times
larger than traditional UUIDs or GUIDs. This allows for enhanced uniqueness and adaptability in scenarios where more
significant identifiers are required.
The Euui type can be utilized for various applications, offering readable formats and flexible access to its
components (u128, u64, u8), making it a powerful alternative for unique identification in embedded or
resource-constrained environments.
Key Features
-
Size: A single
Euuiconsists of 512 bits (64 bytes), making it exceptionally unique. -
Formatting:
- A raw hexadecimal string representation of 128 characters.
- A formatted string with 131 characters, including separators (
-) and line breaks (\n).
-
Components Access:
- Retrieve identifiers as 4×
u128, 8×u64, or 64×u8.
- Retrieve identifiers as 4×
-
Generation:
- Create a zero-initialized
Euuiusingdefault(). - Generate a random
Euuiusingrandom().
- Create a zero-initialized
Installation
Add the following dependency to your Cargo.toml:
[]
= "1.1.0"
= "0.9.0"
Usage
Here are examples of how to use the Euui library:
Creation and Basic Operations
use Euui;
Accessing Parts of an Euui
You can retrieve specific components (u128, u64, or u8) of the Euui as needed:
// Access one of the u128 components
Advanced Initialization
You can initialize an Euui using custom GUIDs or bytes:
From GUIDs (u128 array)
From Bytes (u8 array)
API Overview
The main functionalities of the Euui type are:
Creation Methods
Euui::default()Creates a zero-initializedEuui.Euui::random()Generates a randomEuui.Euui::from_be_guids([u128; 4])Initializes anEuuifrom an array of 4×u128.Euui::from_be_bytes([u8; 64])Initializes anEuuifrom a 64-byte array.Euui::random_from_first(u128)Generates a new random Euui with the firstu128component provided.Euui::random_from_second(u128)Generates a new random Euui with the secondu128component provided.Euui::random_from_third(u128)Generates a new random Euui with the thirdu128component provided.Euui::random_from_fourth(u128)Generates a new random Euui with the fourthu128component provided.Euui::regenerate_first(&self)Generates a newEuuiwith a randomly generated first component.Euui::regenerate_second(&self)Generates a newEuuiwith a randomly generated second component.Euui::regenerate_third(&self)Generates a newEuuiwith a randomly generated third component.Euui::regenerate_fourth(&self)Generates a newEuuiwith a randomly generated fourth component.
Accessor Methods
u128(index: usize) -> Option<u128>Retrieve a specificu128component. Index must be in the range[0, 3].u64(index: usize) -> Option<u64>Retrieve a specificu64component. Index must be in the range[0, 7].u8(index: usize) -> Option<u8>Retrieve a specificu8component. Index must be in the range[0, 63].to_be_bytes() -> [u8; 64]Retrieve the entireEuuias an array of 64 bytes.to_be_guids() -> [u128; 4]Retrieve the entireEuuias an array of 4×u128.
Display Methods
to_string()Converts theEuuito a single hexadecimal string representation.format() -> StringFormats theEuuiinto a structured string, following the pattern: #1-#2 #3-#4.
Use Cases : Large-Scale Unique ID Generation
With 512 bits of entropy, Euui can be useful for applications where traditional 128-bit UUIDs are insufficient to
guarantee uniqueness:
- Distributed systems,
- Cryptographic key identifiers,
- Unique identifiers in high-throughput environments,
- Large enough to have UUID/GUID parts.
License
© 2024-2025 Sébastien GELDREICH
This project is licensed under the MIT License. See LICENSE for more details.