ulid
xid
Our great sponsors
ulid | xid | |
---|---|---|
11 | 6 | |
4,061 | 3,702 | |
1.8% | - | |
4.3 | 3.7 | |
15 days ago | 8 months ago | |
Go | Go | |
Apache License 2.0 | 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.
ulid
-
Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
There is no "tests".
There is just a single test. Which only tests the decoding of a single known value. No encoding test.
Go has infrastructure for benchmarking and fuzzing. Use it!
Also, you took code from https://github.com/oklog/ulid/blob/main/ulid.go which has "Copyright 2016 The Oklog Authors" but this is not mentionned in your base32.go.
-
cmackenzie1/go-uuid: library for generating version 4 (random) and version 7 (time-ordered) UUIDs
maybe because of dependencies: https://github.com/oklog/ulid/blob/main/go.mod ??
You can also have look at https://github.com/oklog/ulid for time ordering generated id purpose
- The most helpful Go Packages
-
UUIDs Are Bad for Database Index Performance, enter UUID7!
Universally Unique Lexicographically Sortable Identifier
-
Is it bad to use short (20 chars) random strings as primary keys?
I'm not concerned too much about the performance or the storage size at this stage. I've checked ulids before posting (more specifically https://github.com/oklog/ulid) but the only difference than a random string (especially if you use them with math.rand) is the timestamp prefix which makes them sortable, but I don't need that (users could use the internal SQLite rowid if they needed to sort by a primary key).
- UUIDs Are Popular, but Bad for Performance
-
Golang Base Project - A simple web app with user authentication
why are you using https://github.com/oklog/ulid to generate a cookie secret?
-
What are your favorite packages to use?
oklog/ulid to generate IDs. coreos/go-oidc for validating JWTs I get from auth. google/go-cmp for comparing structs in tests (unless the project is already using Testify). spf13/pflag because life's too short for Go's flag handling. getkin/kin-openapi for validating reqests/responses against my OpenAPI spec (in tests).
xid
-
The Easiest Way to Create a REST API With Go
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.
-
Build a Job Queue with Rust Using Aide-De-Camp (Part 2)
To schedule a job, all we need to do is serialize the payload, create a new JID (we use XID for JIDs), and insert both into the adc_queue table.
-
How we used Go 1.18 when designing our Identifiers
XID's are 96 bits. The first 32 bits are the time, which means we get our k-sorting immediately. The next 40 bits are a machine identifier and a process identifier. However, unlike the other systems, these are calculated automatically using the library and don't require us to configure anything ourselves. The final 24 bits are a sequence number, which allows a single process to generate 16,777,216 identifiers per second!
-
I need a unique ID sequence number generator, I know I could just use a small MySQL instance, but is there no other way?
Checkout xid https://github.com/rs/xid and how MongoDB does its id
What are some alternatives?
nanoid - A tiny and fast Go unique string generator
uuid - Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
gouid - Fast, dependable universally unique ids
sno - Compact, sortable and fast unique IDs with embedded metadata.
goflake - A highly scalable and serverless unique ID generator for use in distributed systems. Written in GoLang. Inspired by Twitters Snowflake.
Monoton - Highly scalable, single/multi node, sortable, predictable and incremental unique id generator with zero allocation magic on the sequential generation
pgx - PostgreSQL driver and toolkit for Go
go.uuid - UUID package for Go