Skip to content

ernsheong/grand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Grand

GoDoc

Grand is a Go random string generator.

Installation

go get github.com/ernsheong/grand

Usage

  1. IMPORTANT. Seed rand first to ensure you don't get the same string on every code run (initialize):

    rand.Seed(time.Now().UTC().UnixNano())

    or

    rand.Seed(time.Now().Unix())
  2. Generate your random string, given a length parameter n:

    grand.GenerateRandomString(32)
    // returns "qzrWbaoLTVpQoottZyPFfNOoMioXHRuF"
  3. Generate random string from other character sets:

    gen := grand.NewGenerator(grand.CharSetBase62)
    gen.GenerateRandomString(20)
    // returns "q3rWba2LTVpQ4ottZyPv"

Concurrency

From the math/rand docs:

The default Source is safe for concurrent use by multiple goroutines

grand uses the default Source, and hence is safe to be called from multiple goroutines, at a slight performance penalty. See https://stackoverflow.com/a/31832326/1161743 for details.

Credits

I claim no credit for the generation logic. It's originally from user icza in https://stackoverflow.com/a/31832326/1161743.