TensionDev.UUID is a .NET library for working with Universally Unique Identifiers (UUIDs). This project references the following documents for implementation.
- Universally unique identifier - Wikipedia
- MySQL :: MySQL 8.0 Reference Manual :: 12.24 Miscellaneous Functions
- rfc4122
- rfc9562
- 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()andFromGuid(Guid)ToByteArray()andFromBytes(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
dotnet add package TensionDev.UUID
usingTensionDev.UUID;Uuiduuid=UUIDv1.NewUUIDv1();Console.WriteLine(uuid);// Example: 164a714c-0c79-11ec-82a8-0242ac130003usingTensionDev.UUID;Uuiduuid=UUIDv4.NewUUIDv4();Console.WriteLine(uuid);// Example: 550e8400-e29b-41d4-a716-446655440000usingTensionDev.UUID;Uuiduuid=UUIDv5.NewUUIDv5(UUIDNamespace.URL,"https://www.contoso.com");Console.WriteLine(uuid);// Example: 1bf6935b-49e6-54cf-a9c8-51fb21c41b46usingTensionDev.UUID;boolisValid=Uuid.TryParse("550e8400-e29b-41d4-a716-446655440000",outvarparsed);usingTensionDev.UUID;byte[]bytes=uuid.ToByteArray();UuidfromBytes=Uuid.FromBytes(bytes);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