Documentation
¶
Overview ¶
Package sid provides the ability to generate Sortable Identifiers. These are also universally unique.
id1 := sid.Id()
id2 := sid.Id()
fmt.Printf("id1 = %s\n", id1)
fmt.Printf("id2 = %s\n", id2)
// -> "id1 = 1IeSBAWW83j-2wgJ4PUtlAr"
// -> "id2 = 1IeSBAWW9kK-0cDG64GQgGJ"
This package is simple and only provides one function. The aim here is not pure speed, it is for an easy use-case without having to worry about goroutines and locking.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Id ¶
func Id() string
Id returns a 39 char string based on timestamp and a random number. The format is "XXXXXXXXXXXXXXXXXXX-YYYYYYYYYYYYYYYYYYY" where X is the timestamp and Y is the random number. If (by any chance) this is called in the same nanosecond, the random number is incremented instead of a new one being generated. This makes sure that two consecutive Ids generated in the same goroutine also ensure those Ids are also sortable.
It is safe to call from different goroutines since it has it's own locking.
func IdBase32 ¶
func IdBase32() string
IdBase32 returns a 27 char string based on timestamp and a random number. The format is "XXXXXXXXXXXXX-YYYYYYYYYYYYY" where X is the timestamp and Y is the random number. If (by any chance) this is called in the same nanosecond, the random number is incremented instead of a new one being generated. This makes sure that two consecutive Ids generated in the same goroutine also ensure those Ids are also sortable.
It is safe to call from different goroutines since it has it's own locking.
func IdBase64 ¶
func IdBase64() string
IdBase64 returns a 23 char string based on timestamp and a random number. The format is "XXXXXXXXXXX-YYYYYYYYYYY" where X is the timestamp and Y is the random number. If (by any chance) this is called in the same nanosecond, the random number is incremented instead of a new one being generated. This makes sure that two consecutive Ids generated in the same goroutine also ensure those Ids are also sortable.
It is safe to call from different goroutines since it has it's own locking.
func IdHex ¶
func IdHex() string
IdHex returns a char string based on timestamp and a random number. The format is "XXXXXXXXXXXXXXXX-YYYYYYYYYYYYYYYY" where X is the timestamp and Y is the random number. If (by any chance) this is called in the same nanosecond, the random number is incremented instead of a new one being generated. This makes sure that two consecutive Ids generated in the same goroutine also ensure those Ids are also sortable.
It is safe to call from different goroutines since it has it's own locking.
Types ¶
This section is empty.