Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Go Nanoid

Build Status Build Status GoDoc Go Report Card GitHub issues License

This package is Go implementation of ai's nanoid!

Safe. It uses cryptographically strong random generator.

Compact. It uses more symbols than UUID (A-Za-z0-9_-) and has the same number of unique options in just 22 symbols instead of 36.

Fast. Nanoid is as fast as UUID but can be used in URLs.

There's also this alternative:


Via go get tool

$ go get


Generate ID

id, err := gonanoid.New()

Generate ID with a custom alphabet and length

id, err := gonanoid.Generate("abcde", 54)


If you use Go Nanoid in your project, please let me know!

If you have any issues, just feel free and open it in this repository, thanks!



The MIT License (MIT). Please see License File for more information.