GuidOne 1.0.1
dotnet add package GuidOne --version 1.0.1
NuGet\Install-Package GuidOne -Version 1.0.1
<PackageReference Include="GuidOne" Version="1.0.1" />
paket add GuidOne --version 1.0.1
#r "nuget: GuidOne, 1.0.1"
// Install GuidOne as a Cake Addin #addin nuget:?package=GuidOne&version=1.0.1 // Install GuidOne as a Cake Tool #tool nuget:?package=GuidOne&version=1.0.1
GuidOne
Good one: the .NET GUID Generation library behind the project http://guid.one
This library implements the following GUID generation algorithms specified in RFC 4122
- Version 1: Date-time and MAC address GUID
- Version 3: MD5 hash & namespace
- Version 4: Random
- Version 5: SHA-1 hash & namespace
It targets .NET Standard 2.0 for maximum compatibility.
Usage
Generating GUIDs
var guidV1 = Uuid.NewV1(); //Generate a V1 GUID for current time + random node
var guidV3 = Uuid.NewV3(GuidNamespaces.DNS, "guid.one"); //Generate a V3 GUID for a particular domain
var guidV4 = Uuid.NewV4(); //Generate a V4 GUID (random)
var guidV5 = Uuid.NewV5(GuidNamespaces.DNS, "guid.one"); //Generate a V5 GUID for a particular domain
var guid = guidV4.AsGuid(); //Convert to a standard .NET Guid
Inspecting GUIDs
var uuid = new Uuid(Guid.Parse("63b00000-bfde-11d3-b852-290676ece2d7")); // Parse a UUID
var version = uuid.Version;
var variant = uuid.Variant;
var version = uuid.Timestamp; //Only for timebased Guids
Generating V1 Guids with no local conflicts
The timestamp GUIDs can conflict if generated too quickly, the library supports a slower mode of generation that makes sure there's no duplicates (non-distributed!)
var uuid = new Uuid(Guid.Parse("63b00000-bfde-11d3-b852-290676ece2d7")); // Parse a UUID
using (var v1Gen = new UuidV1Generator(generationMode: GenerationMode.NoDuplicates)){
var unique = v1Gen.NewV1(now, PhysicalAddress.Parse("...")).AsGuid();
}
More information
Visit my blog for a 3-part series that dives into the secret world of GUIDs: https://michael-mckenna.com/what-the-guid.
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. |
.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
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.1 | 26,243 | 8/16/2023 |
1.0.0 | 953 | 6/27/2023 |
1.0.0-alpha5 | 118 | 6/27/2023 |
Update package icon