TensionDev.UUID
2.4.0
Prefix Reserved
dotnet add package TensionDev.UUID --version 2.4.0
NuGet\Install-Package TensionDev.UUID -Version 2.4.0
<PackageReference Include="TensionDev.UUID" Version="2.4.0" />
<PackageVersion Include="TensionDev.UUID" Version="2.4.0" />
<PackageReference Include="TensionDev.UUID" />
paket add TensionDev.UUID --version 2.4.0
#r "nuget: TensionDev.UUID, 2.4.0"
#:package TensionDev.UUID@2.4.0
#addin nuget:?package=TensionDev.UUID&version=2.4.0
#tool nuget:?package=TensionDev.UUID&version=2.4.0
TensionDev.UUID
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
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()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
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
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on TensionDev.UUID:
| Package | Downloads |
|---|---|
|
TensionDev.UUID.Serialization.SystemTextJson
TensionDev.UUID.Serialization.SystemTextJson is a .NET library that serializes TensionDev.Uuid objects into JSON. |
|
|
TensionDev.UUID.Serialization.JsonNet
TensionDev.UUID.Serialization.JsonNet is a .NET library that serializes TensionDev.Uuid objects into JSON. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Change in license to Apache License 2.0.
Release with UUID / GUID Version 1, Version 3, Version 4, Version 5, Versions 6 and 7.