uuid
ksuid
uuid | ksuid | |
---|---|---|
18 | 38 | |
5,016 | 4,691 | |
1.0% | 0.8% | |
7.1 | 3.1 | |
about 1 month ago | 7 months ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | MIT License |
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.
uuid
- UUIDs and the probability of being hit by a meteorite
-
Any way of blocking or preferring a package?
I use Google's UUID package a lot. But every time I refer to it in a new package, the language server picks up https://github.com/gofrs/uuid instead of https://github.com/google/uuid and then complains that the gofrs package isn't in go.mod. I assume because it's the first alphabetically (though this seems like a huge supply chain security loophole).
- What is the best practice for a Go Model id?
-
Authentication for HTMX app
Just store one single UUID as a token in a client's cookie (use https://github.com/google/uuid for ex), and associate that to a user ID (or anything else relevant in your case), and an expiry date for example
-
Which UUID package do you use? and why?
Depends on your needs I think, I generally just use github.com/google/uuid like /u/wowsux mentioned it supports v1 through v5 of the UUID spec.
-
Create a REST API with Go
And we are also going to use google/uuid to generate random uuids.
-
Testing UUID, how to access same UUID as created by the thing you are testing?
If you are using "github.com/google/uuid", try the following codes
-
Go Lang for .NET devs
You can see the same naming dilemma in many Go library implementations, i.e., where a package is used to organize functions related to a single a type (https://github.com/google/uuid) vs organizing code of related functionality (https://github.com/golang/go/tree/master/src/math).
-
goes - CQRS & Event-Sourcing Toolkit
Type inference is not perfect yet (especially for functional options). Also not being able to add type parameters to methods is a bit annoying (can be worked around using package-level functions) but besides that generics fit quite nicely into the library. If type inference gets better then I think I can even remove the hard dependency on github.com/google/uuid and let users use custom types for ids.
-
Web dev learning path advice
Learn how to create UUIDs: https://github.com/google/uuid
ksuid
- What happens after 100 years?
-
Zero Downtime Postgres Upgrades
OP here - we avoid sequences in all but one part of our application due to a dependency. We use [KSUIDs][1] and UUID v4 in various places. This one "gotcha" applies to any sequence, so it's worth calling out as general advice when running a migration like this.
[1]: https://segment.com/blog/a-brief-history-of-the-uuid/
-
Bye Sequence, Hello UUIDv7
UUID v4 isn't large enough to prevent collisions, that is why segment.io created https://github.com/segmentio/ksuid which is 160bit vs the 128bit of a UUIDv4.
- You Don't Need UUID
- A Brief History of the UUID
-
Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
Assuming you don't need to use UUIDv7 (or any UUID's) then https://github.com/segmentio/ksuid provides a much bigger keyspace. You could just append a string prefix if you wanted to namespace, but the chance of collisions of a KSUID is many times smaller than a UUID of any version.
-
Unexpected downsides of UUID keys in PostgreSQL
KSUID's are have temporal-lexicographical order plus 128 bits of entropy, which is more than UUIDv4.
https://github.com/segmentio/ksuid
-
UUIDs are so much better than autoincrementing ids and it's not even close
That's why you use ksuid (https://segment.com/blog/a-brief-history-of-the-uuid/) or, if you're willing to go with a draft spec you could go with the new UUID formats https://www.ietf.org/archive/id/draft-ietf-uuidrev-rfc4122bi...
-
What Happened to UUIDv2?
Interesting in more history of UUIDs? Twilio Segment's blog has an amazing history lesson about how they came to be.
-
Which UUID package do you use? and why?
I use the ksuid from segment. https://github.com/segmentio/ksuid
What are some alternatives?
uuid - A UUID package originally forked from github.com/satori/go.uuid
ulid - Universally Unique Lexicographically Sortable Identifier (ULID) in Python 3
go.uuid - UUID package for Go
pg-ulid - ULID Functions for PostgreSQL
xid - xid is a globally unique id generator thought for the web
nanoid - A tiny (124 bytes), secure, URL-friendly, unique string ID generator for JavaScript
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
ulid-mssql - Implementation of ULID generator For Microsoft SQL Server
validator - :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
python-ksuid - A pure-Python KSUID implementation
jwt - ⚠️ Deprecated repository, available within Fiber Contrib.
uuid7 - UUID version 7, which are time-sortable (following the Peabody RFC4122 draft)