- Safe. It uses cryptographically strong random APIs and tests distribution of symbols.
- Compact. It uses a larger alphabet than UUID
(A-Za-z0-9_-)
. So ID size was reduced from 36 to 21 symbols.
id, err := nanoid.New() //> "i25_rX9zwDdDn7Sg-ZoaH"
if err != nil {
log.Fatalln(err)
}
Once Go is installed, run the following command to get Nano ID.
go get github.com/aidarkhanov/nanoid/v2
The package reference is located at pkg.go.dev/github.com/aidarkhanov/nanoid/v2.
- The API of this package is frozen.
- Release patches if necessary.
This package is provided under MIT/Expat license. See LICENSE.md file for details.
- Andrey Sitnik for the original JavaScript algorithm implementation.
- Paul Yuan for letting me improve the Python version of the library. Without the previous work, I would not be able to fully understand the algorithm.