UUIDNext
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). (by mareek)
go.uuid
UUID package for Go (by satori)
UUIDNext | go.uuid | |
---|---|---|
6 | 4 | |
160 | 4,855 | |
- | - | |
6.7 | 0.0 | |
1 day ago | 9 months ago | |
C# | Go | |
BSD Zero Clause License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
UUIDNext
Posts with mentions or reviews of UUIDNext.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-25.
-
Hey guys! Just wanted to share a tip on how to use performant Guid as primary keys in databases. Have you heard about UUID Version 7? It's here to save the day! Give it a try and let me know what you think. Happy coding! 😎💻
Here's the link to the library: https://github.com/mareek/UUIDNext
-
I need some help to adapt my UUID/GUID library (UUIDNext) to generate the best UUIDs for PostgreSQL, MySQL and other DBMS
I maintain a library that generate database optimized UUIDs and to investigate how UUID are stored and sorted on various databases, I need you to execute a little program that show just that (see end of post for more details).
-
How to use performant Guid as primary keys in databases. UUID Version 7 to the rescue!
Not my library: UUIDNext
-
TL;DR HiLo Key Generation in Entity Framework
BUT if you want to us GUID's on the server side as performant indexes, use this: https://github.com/mareek/UUIDNext
- UUINext: a modern .NET library to generate database friendly or name based UUID/GUID based on the latest RFC draft [crosspost from r/csharp]
- UUINext: a modern .NET library to generate database friendly or name based UUID/GUID based on the latest RFC draft
go.uuid
Posts with mentions or reviews of go.uuid.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-02-27.
-
Writing UDF for Clickhouse using Golang
package main import ( "bufio" "encoding/binary" "encoding/hex" "fmt" "os" "strings" "time" ) func main() { scanner := bufio.NewScanner(os.Stdin) scanner.Split(bufio.ScanLines) for scanner.Scan() { id, _ := FromString(scanner.Text()) fmt.Println(id.Time()) } } func (me UUID) Nanoseconds() int64 { time_low := int64(binary.BigEndian.Uint32(me[0:4])) time_mid := int64(binary.BigEndian.Uint16(me[4:6])) time_hi := int64((binary.BigEndian.Uint16(me[6:8]) & 0x0fff)) return int64((((time_low) + (time_mid << 32) + (time_hi << 48)) - epochStart) * 100) } func (me UUID) Time() time.Time { nsec := me.Nanoseconds() return time.Unix(nsec/1e9, nsec%1e9).UTC() } // code below Copyright (C) 2013 by Maxim Bublis // see https://github.com/satori/go.uuid // Difference in 100-nanosecond intervals between // UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970). const epochStart = 122192928000000000 // UUID representation compliant with specification // described in RFC 4122. type UUID [16]byte // FromString returns UUID parsed from string input. // Following formats are supported: // "6ba7b810-9dad-11d1-80b4-00c04fd430c8", // "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}", // "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" func FromString(input string) (u UUID, err error) { s := strings.Replace(input, "-", "", -1) if len(s) == 41 && s[:9] == "urn:uuid:" { s = s[9:] } else if len(s) == 34 && s[0] == '{' && s[33] == '}' { s = s[1:33] } if len(s) != 32 { err = fmt.Errorf("uuid: invalid UUID string: %s", input) return } b := []byte(s) _, err = hex.Decode(u[:], b) return } // Returns canonical string representation of UUID: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. func (u UUID) String() string { return fmt.Sprintf("%x-%x-%x-%x-%x", u[:4], u[4:6], u[6:8], u[8:10], u[10:]) }
-
satori uuid vs google uuid vs gofrs uuid ? which to use to generate uuid for enterprise coding standards
Link to source code :https://github.com/satori/go.uuid up to v5
-
Building web-based SaaS with Go as a solo entrepreneur. What should I be aware of?
Something to note is that all of this is still open source. Theoretically, someone can decide to fork SQLBoiler and add all the missing things, or send in a PR. A good example is that the current most popular uuid package. gofrs/uuid was forked from an unmaintained previously popular package.
- CVE-2021-3538 issued for latest release of github.com/satori/go.uuid
What are some alternatives?
When comparing UUIDNext and go.uuid you can also consider the following projects:
NewId - A sequential id generator that works across nodes with no collisions
uuid - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
golang-templates/seed - Go application GitHub repository template.
unity-guid-regenerator - :id: GUID regenerator for Unity assets
go-shortid - Super short, fully unique, non-sequential and URL friendly Ids
Huid - 🎫 High-speed a FNV-1a-128 hash-based UUID.
go-chat-bot - IRC, Slack, Telegram and RocketChat bot written in go
rfc4122bis - revision to RFC4122
autoflags - Populate go command line app flags from config struct
Ulid - Fast .NET C# Implementation of ULID for .NET and Unity.
conv - Fast conversions across various Go types with a simple API.