Skip to content
/ valid Public

valid is a generator of random IDs. It is sortable and can be validated using a checksum.

License

Notifications You must be signed in to change notification settings

juntaki/valid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Validatable Unique Identifier

Go Reference GoCover

valid is a library for generating random ID, with the default configuration as follows

  • 5 bytes timestamp
  • 14 bytes of random bytes
  • 1 byte checksum

Features:

  • Cryptographically secure (use of crypto/rand)
  • Lexicographically sortable
  • Allows validation of ID
  • Word safe and URL safe characters
  • Embedded time with millisecond precision

In addition, most of the features can be changed by configuration.

Name Secure Random Bit Size String ID Size Sortable Checksum
google/uuid 122 bits 36 chars no no
oklog/ulid 80 bits (user defined source) 26 chars yes no
rs/xid n/a (not cryptographically secure) 20 chars yes no
valid (default) 112 bits 32 chars yes yes
valid (configurable) any depends on config yes / no yes / no

Install

go get github.com/juntaki/valid

Usage

id := valid.Generate()

fmt.Println(id, len(id), valid.IsValid(id), valid.Timestamp(id))
// Output: 2X9P75FX2pJqCcHRVWV2862JW6XhFr6x 32 true 2021-09-08 23:59:17.339250688 +0900 JST

About

valid is a generator of random IDs. It is sortable and can be validated using a checksum.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages