Cayd.Uuid 1.0.0

dotnet add package Cayd.Uuid --version 1.0.0
                    
NuGet\Install-Package Cayd.Uuid -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cayd.Uuid" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cayd.Uuid" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Cayd.Uuid" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cayd.Uuid --version 1.0.0
                    
#r "nuget: Cayd.Uuid, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cayd.Uuid@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cayd.Uuid&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Cayd.Uuid&version=1.0.0
                    
Install as a Cake Tool

About

Cayd.Uuid is a library containing static classes to generate System.Guid types following all versions of UUID defined in RFC 9562.

Quick Start

After installing the package, you can generate System.Guid by using the static Uuid class in the library. This class includes all versions of UUID.

A few examples of how to generate UUIDs:

using Cayd.Uuid;

Guid uuidV1 = Uuid.V1.Generate();
// UUID V2 is outside of RFC 9562's scope.
Guid uuidV3 = Uuid.V3.Generate(Uuid.V3.DnsNamespaceId, "example.com");
Guid uuidV4 = Uuid.V4.Generate();
Guid uuidV5 = Uuid.V5.Generate(Uuid.V5.UrlNamespaceId, "https://www.example.com");
Guid uuidV6 = Uuid.V6.Generate();
Guid uuidV7 = Uuid.V7.Generate();
Guid uuidV8 = Uuid.V8.Generate(myCustomData);

Which Version To Use?

It is recommended to check RFC 9562 to understand how each version generates UUIDs. For reference, V4 is the same as the default Guid.NewGuid. Starting from .Net 9, System.Guid introduces Guid.CreateVersion7, which is the same as V7.

Extras

Depending on your need, you can adjust some parameters in some versions while generating UUIDs.

  • The V1 and V6 classes have their own static UseRandomNodeId boolean variables to decide if they should use real MAC addresses of a current machine for the node bits or should use random bits. The default is set to false.
    • The default behavior of these classes is to try to retrieve a MAC address once and use it for all UUID generations. If no MAC address is found or the UseRandomNodeId is set to true, they generate a random node ID. If you want to update the node bits in generated UUIDs, you can call the RefreshNodeId in these clases to refresh their node IDs.
  • The Generate methods of the V1 and V6 classes have useLock boolean parameter to decide if they should use lock to ensure uniquness of generated UUIDs in multithreading siutations. The default value is false.
  • The Generate method of the V7 have offset parameter to adjust time bits in generated UUIDs. The default value is DateTimeOffset.UtcNow.
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 2,903 7/23/2025

Initial release