Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

TensionDev/UUIDUtil

Repository files navigation

TensionDev.UUID

.NET Package Release CodeQL

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)

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

Generate UUID v4 (random)

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

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

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

Parse and validate

using TensionDev.UUID;
bool isValid = Uuid.TryParse("550e8400-e29b-41d4-a716-446655440000", out var parsed);

Byte Conversions

using TensionDev.UUID;
byte[] bytes = uuid.ToByteArray();
Uuid fromBytes = Uuid.FromBytes(bytes);

String Formatting

using TensionDev.UUID;
Console.WriteLine(uuid.ToString("N")); // 32 hex digits
Console.WriteLine(uuid.ToString("D")); // canonical form
Console.WriteLine(uuid.ToString("B")); // with braces
Console.WriteLine(uuid.ToString("P")); // with parentheses

Sponsor this project

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /