Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 17 Go Uuid Projects
-
uuid
Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services. (by google)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
typeid-go
Go implementation of TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
-
Monoton
Highly scalable, single/multi node, sortable, predictable and incremental unique id generator with zero allocation magic on the sequential generation
-
uuid
Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. (by agext)
-
go-uuid
A simple, stdlib only, go module for generating UUIDs (Universally Unique IDentifiers). (by cmackenzie1)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: UUIDs and the probability of being hit by a meteorite | news.ycombinator.com | 2024-04-11
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:]) }
Our Go ULID package has millisecond precision + monotonic random bytes for disambiguation while preserving ordering within the same millisecond. https://github.com/oklog/ulid
The goal of babyapi is to be so easy that a baby could do it. As previously mentioned, babyapi.DefaultResource already implements the required interface, so it can be used as a starting point for simple resource types. Besides simply implementing the interface, this default struct implements some validations around the ID and uses rs/xid to create a unique identifer on new resources.
I’ve seen this sort of design referred to as “typed IDs”: https://github.com/jetify-com/typeid
Doesn’t use the crockford encoding, but does is another one that minimises confusables.
Project mention: satori uuid vs google uuid vs gofrs uuid ? which to use to generate uuid for enterprise coding standards | /r/golang | 2023-09-04https://github.com/gofrs/uuid upto v5
WUID in Go -> https://github.com/edwingeng/wuid
Using jaevor/go-nanoid for those short IDs. With a ID length of 10 it'll take about ~17 years to have ~1% chance of collision.
Project mention: Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs | news.ycombinator.com | 2023-06-28We've now implemented pretty thorough testing: https://github.com/jetpack-io/typeid-go/blob/main/typeid_tes...
Thanks for the feedback!
Project mention: Show HN: Benchmarks of UUID bintext codecs in Go | news.ycombinator.com | 2024-04-22
Go Uuid related posts
- ULIDs and Primary Keys
- Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
- UUIDs and the probability of being hit by a meteorite
- What happens after 100 years?
- The Easiest Way to Create a REST API With Go
- satori uuid vs google uuid vs gofrs uuid ? which to use to generate uuid for enterprise coding standards
- A Brief History of the UUID
-
A note from our sponsor - InfluxDB
www.influxdata.com | 24 Apr 2024
Index
What are some of the best open-source Uuid projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | uuid | 5,006 |
2 | go.uuid | 4,856 |
3 | ksuid | 4,679 |
4 | ulid | 4,094 |
5 | xid | 3,731 |
6 | typeid | 2,735 |
7 | uuid | 1,500 |
8 | shortuuid | 1,144 |
9 | wuid | 516 |
10 | go-nanoid | 417 |
11 | typeid-go | 98 |
12 | sno | 89 |
13 | Monoton | 29 |
14 | gouid | 23 |
15 | uuid | 18 |
16 | go-uuid | 13 |
17 | bench-bintext-codecs | 0 |
Sponsored