You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TypeIDs are a modern, type-safe, globally unique identifier based on the upcoming
UUIDv7 standard. They provide a ton of nice properties that make them a great choice
as the primary identifiers for your data in a database, APIs, and distributed systems.
Read more about TypeIDs in their spec.
This particular implementation provides a go library for generating and parsing TypeIDs.
Installation
To add this library as a dependency in your go module, run:
go get go.jetify.com/typeid/v2
Usage
This library provides a go implementation of TypeID:
import (
"go.jetify.com/typeid/v2"
)
funcexample() {
// Generate a new TypeID with a prefix (panics on invalid prefix)tid:=typeid.MustGenerate("user")
fmt.Println(tid)
// Generate a new TypeID without a prefixtid=typeid.MustGenerate("")
fmt.Println(tid)
// Generate with error handlingtid, err:=typeid.Generate("user")
iferr!=nil {
log.Fatal(err)
}
// Parse an existing TypeIDtid, _=typeid.Parse("user_00041061050r3gg28a1c60t3gf")
fmt.Println(tid)
// Convert from UUIDtid, _=typeid.FromUUID("user", "018e5f71-6f04-7c5c-8123-456789abcdef")
fmt.Println(tid)
}
For the full documentation, see this package's godoc.
About
Go implementation of TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs