Test Suite Go Report Card

The goal with primarykey is to provide a bridge between github.com/google/uuid and github.com/lithammer/shortuuid while also supporting database interfaces so they can continue to be used as column types in things like gorm.io/gorm.


The primarykey.ID type is byte-compatible with UUIDs, and provides all the interfaces required to be used as a database column type. For example, if you have a gorm model:

import "go.b8s.dev/primarykey"

type MyModel struct {
	ID primarykey.ID

There is also a public interface to encode and decode directly:

newOne := primarykey.New()
Encode(newOne) //=> "KwSysDpxcBU9FNhGkn2dCf"

id := Decode("KwSysDpxcBU9FNhGkn2dCf") //=> ID
id.UUID() //=> uuid.UUID
id.String() //=> "KwSysDpxcBU9FNhGkn2dCf"


This is a very standard Go project with very minimal dependencies and no required setup. Dependencies are vendored.

To run the test suite,

$ go test .

That’s about it.


View Github