Skip to content

Commit

Permalink
Add nuspec
Browse files Browse the repository at this point in the history
  • Loading branch information
SanderSade committed Mar 15, 2019
1 parent 271f6a3 commit 198e0af
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
38 changes: 38 additions & 0 deletions Sander.SequentialGuid.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Sander.SequentialGuid</id>
<version>1.0.0</version>
<authors>Sander Säde</authors>
<owners>Sander Säde</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<licenseUrl>https://github.com/SanderSade/SequentialGuid/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/SanderSade/SequentialGuid/</projectUrl>
<iconUrl>https://img.shields.io/badge/Sequential-Guid-lightgrey.svg</iconUrl>
<description>By default, GUIDs are not alphanumerically continuous or sortable in a meaningful way.

A very common use for GUID is a primary key in the database - but with non-sequential GUIDs, it is not optimal to have the primary key as a clustered index. Using clustered index with nonsequential GUIDs can cause fragmentation and general performance issues.

To resolve this, SQL Server has NEWSEQUENTIALID, which creates alphanumerically sortable, sequential GUIDs. The downside ot this approach is that the application will have to wait the SQL Server to create the primary key before the entry becomes usable - and of course, there are other database engines that do not have similar functionality.

Windows has a native UuidCreateSequential function, which is not available on other .NET platforms.

SequentialGuid library is implemented as a .NET Standard 2.0 package, allowing creation of sortable GUIDs prior storing data in the database on any compatible platform. In addition, there are useful helper functions to convert to/from GUID or get specific chartacter/byte.

SequentialGuid is aimed for high-performance applications, as other such libraries are often very underperforming or do not have comparable functionality.
</description>
<copyright>© Sander Säde 2019</copyright>
<tags>sequential-guids guid guid-conversion guid-generator </tags>
<repository type="GitHub" url="https://github.com/SanderSade/SequentialGuid/" />
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="System.Runtime.Numerics" version="4.3.0" exclude="Build,Analyzers" />
<dependency id="System.ValueTuple" version="4.5.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
<files>
<file src="Sander.SequentialGuid\bin\Release\netstandard2.0\Sander.SequentialGuid.dll" target="lib\netstandard2.0" />
<file src="Sander.SequentialGuid\bin\Release\netstandard2.0\Sander.SequentialGuid.xml" target="lib\netstandard2.0" />
</files>
</package>
1 change: 1 addition & 0 deletions Sander.SequentialGuid.sln
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Doc", "Doc", "{9E1D0E5B-636B-41A1-96A1-3169F0E28E55}"
ProjectSection(SolutionItems) = preProject
readme.md = readme.md
Sander.SequentialGuid.nuspec = Sander.SequentialGuid.nuspec
EndProjectSection
EndProject
Global
Expand Down

0 comments on commit 198e0af

Please sign in to comment.