All Projects → mareek → UUIDNext

mareek / UUIDNext

Licence: WTFPL license
A fast and modern .NET library to generate UUID/GUID that are either sequential and database friendly (versions 7), name based (versions 5) or random (version 4).

Programming Languages

C#
18002 projects
smalltalk
420 projects

Labels

Projects that are alternatives of or similar to UUIDNext

Uuid
A PHP library for generating universally unique identifiers (UUIDs).
Stars: ✭ 11,475 (+13560.71%)
Mutual labels:  uuid, guid
ulid-creator
A Java library for generating Universally Unique Lexicographically Sortable Identifiers (ULID)
Stars: ✭ 38 (-54.76%)
Mutual labels:  uuid, guid
Javascript
Universally Unique Lexicographically Sortable Identifier
Stars: ✭ 1,781 (+2020.24%)
Mutual labels:  uuid
Python Wechat Itchat
微信机器人,基于Python itchat接口功能实例展示:01-itchat获取微信好友或者微信群分享文章、02-itchat获取微信公众号文章、03-itchat监听微信公众号发送的文章、04 itchat监听微信群或好友撤回的消息、05 itchat获得微信好友信息以及表图对比、06 python打印出微信被删除好友、07 itchat自动回复好友、08 itchat微信好友个性签名词云图、09 itchat微信好友性别比例、10 微信群或微信好友撤回消息拦截、11 itchat微信群或好友之间转发消息
Stars: ✭ 216 (+157.14%)
Mutual labels:  uuid
Lua Resty Jit Uuid
Fast and dependency-free UUID library for LuaJIT/ngx_lua
Stars: ✭ 169 (+101.19%)
Mutual labels:  uuid
Flake
Decentralized, k-ordered unique IDs in Clojure
Stars: ✭ 132 (+57.14%)
Mutual labels:  uuid
Id Generator
生成带校验码的卡号、19位的Long ID、不大于22位的短UUID、短卡号、激活码、数字加密、付款码。分布式、基于内存、安全可靠、性能高。
Stars: ✭ 180 (+114.29%)
Mutual labels:  uuid
User Bundle
A new Symfony user bundle
Stars: ✭ 116 (+38.1%)
Mutual labels:  uuid
Uuid
Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
Stars: ✭ 3,237 (+3753.57%)
Mutual labels:  uuid
Icicle
A distributed, k-sortable unique ID generation system using Redis and Lua.
Stars: ✭ 159 (+89.29%)
Mutual labels:  uuid
Uuid
Erlang Native UUID Generation
Stars: ✭ 188 (+123.81%)
Mutual labels:  uuid
Zkudid
Generate and save permanent UDID with IDFV and keychain in iOS device.
Stars: ✭ 159 (+89.29%)
Mutual labels:  uuid
Laravel Uuid
Laravel package to generate and to validate a UUID according to the RFC 4122 standard. Only support for version 1, 3, 4 and 5 UUID are built-in.
Stars: ✭ 1,717 (+1944.05%)
Mutual labels:  uuid
Msgphp
Reusable domain layers. Shipped with industry standard infrastructure.
Stars: ✭ 182 (+116.67%)
Mutual labels:  uuid
Electrode Csrf Jwt
Stateless Cross-Site Request Forgery (CSRF) protection with JWT
Stars: ✭ 127 (+51.19%)
Mutual labels:  uuid
Ulid
Universally Unique Lexicographically Sortable Identifier (ULID) in Python 3
Stars: ✭ 216 (+157.14%)
Mutual labels:  uuid
Symfony Demo App
A Symfony demo application with basic user management
Stars: ✭ 122 (+45.24%)
Mutual labels:  uuid
Uid Promise
Creates a cryptographically strong UID
Stars: ✭ 179 (+113.1%)
Mutual labels:  uuid
Ulid
Universally Unique Lexicographically Sortable Identifier implementation for Ruby
Stars: ✭ 253 (+201.19%)
Mutual labels:  uuid
Ksuid
K-Sortable Globally Unique IDs
Stars: ✭ 3,202 (+3711.9%)
Mutual labels:  uuid

UUIDNext

A fast and modern .NET library to generate UUID/GUID that are either sequential and database friendly (versions 7 & 8), name based (versions 5) or random (version 4).

How to Install

UUIDNext is available on nuget.org

How to Use

using System;
using UUIDNext;

// Creating a database friendly UUID (version 7)
Guid sequentialUuid = Uuid.NewDatabaseFriendly(Database.SQLite);
Console.WriteLine($"This is a database friendly UUID : {sequentialUuid}");



// Creating a name based UUID (Version 5)
Guid urlNamespaceId = Guid.Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8");
Guid nameBasedUuid = Uuid.NewNameBased(urlNamespaceId, "https://github.com/uuid6/uuid6-ietf-draft");
Console.WriteLine($"This is a name based UUID : {nameBasedUuid}");

What are all these versions ? I didn't know there were so many types of GUID

The traditional GUID (a.k.a UUID Version 4) is fine and works really well for it's intended use. But its random nature is problematic in some scenarios that's why other UUID versions have been created.

UUID Version 3 and 5 are name-based UUIDs. They take a namespace and a name as input and produce a hash-like UUID. Usage of Version 3 is discouraged as it is based on the obsolete MD5 hash function.

UUID Version 7 and 8 are intended to be used as a primary key in a database. The randomness of UUID V4 has a negative impact on performance when used as a key in a database and UUID V1 exposed the MAC address of the machine where it was created. UUID V7 & 8 aims to take the best of both worlds without their drawbacks. They are currently at the draft stage so their structure and implementation may change.

Why creating a new Library ? is there a problem with Guid.NewGuid() ?

As I said, UUIDs V4 produced by Guid.NewGuid() are fine when they are not used in the scenarios described above and there's no reason to stop using them. But if you find yourself in a position where UUID V4 is suboptimal, this library is for you.

Resources

RFC 4122 : The standard for UUID Version 1 to 5.

Draft UUID V6 RFC : The proposed standard for UUID Version 6 to 8

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].