Skip to content

Repository files navigation

TensionDev.UUID

.NETPackage ReleaseCodeQL

TensionDev.UUID is a .NET library for working with Universally Unique Identifiers (UUIDs). This project references the following documents for implementation.


Features

  • Support for multiple UUID versions:
    • v1 (date-time and MAC address)
    • v3 (MD5 namespace name-based)
    • v4 (random)
    • v5 (SHA-1 namespace name-based)
    • v6 (date-time-ordered)
    • v7 (Unix time + randomness)
  • Converters:
    • ToGuid() and FromGuid(Guid)
    • ToByteArray() and FromBytes(byte[])
    • Variant conversions (ToVariant1, ToVariant2)
  • Parsing utilities:
    • Parse(string)
    • TryParse(string, out Uuid)
  • Formatting options:
    • N, D, B, P (same as System.Guid)
  • Comparison operators:
    • ==, !=, <, >, <=, >=
  • Equality and hashing for dictionary/set usage
  • Strict RFC compliance for parsing and validation

Installation

dotnet add package TensionDev.UUID

Usage Examples

Generate UUID v1 (date-time and MAC address)

usingTensionDev.UUID;Uuiduuid=UUIDv1.NewUUIDv1();Console.WriteLine(uuid);// Example: 164a714c-0c79-11ec-82a8-0242ac130003

Generate UUID v4 (random)

usingTensionDev.UUID;Uuiduuid=UUIDv4.NewUUIDv4();Console.WriteLine(uuid);// Example: 550e8400-e29b-41d4-a716-446655440000

Generate UUID v5 (SHA-1 namespace name-based)

usingTensionDev.UUID;Uuiduuid=UUIDv5.NewUUIDv5(UUIDNamespace.URL,"https://www.contoso.com");Console.WriteLine(uuid);// Example: 1bf6935b-49e6-54cf-a9c8-51fb21c41b46

Parse and validate

usingTensionDev.UUID;boolisValid=Uuid.TryParse("550e8400-e29b-41d4-a716-446655440000",outvarparsed);

Byte Conversions

usingTensionDev.UUID;byte[]bytes=uuid.ToByteArray();UuidfromBytes=Uuid.FromBytes(bytes);

String Formatting

usingTensionDev.UUID;Console.WriteLine(uuid.ToString("N"));// 32 hex digitsConsole.WriteLine(uuid.ToString("D"));// canonical formConsole.WriteLine(uuid.ToString("B"));// with bracesConsole.WriteLine(uuid.ToString("P"));// with parentheses

Releases

Sponsor this project

Packages

Used by

Contributors

Languages