🆔 the Nim implementation of NanoID
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.travis.yml
license
nanoid.nimble
readme.md

readme.md

nanoid.nim

the Nim implementation of NanoID

Build Status

What even?

NanoID is a tiny, secure URL-friendly unique string ID generator.
It's safe. It uses cryptographically strong random APIs that guarantees proper distribution of symbols.
And it's compact. It uses a larger alphabet than the standard UUID (A-Za-z0-9_-), and has a similar number of unique IDs in just 21 symbols instead of 36.

Installation

nimble install nanoid

Optionally, run the test suite (after cloning this repo) using

nimble test

Usage

Simple

Uses the default alphabet set (A-Za-z0-9_-) and a size of 21 symbols.

import nanoid

echo generate()  # RKF2A0-pGhJfpm6-rSi5C

Non-secure

import nanoid

echo generateNonSecure()  # SL8Zh8Lfw9TIRbaQI-DxB

Custom alphabet/size

import nanoid

let
  a = "abcdef12345"
  s = 10

echo generate(alphabet=a, size=10)  # 15aa1d2b3a

That’s it, really.

TODO

  • Async API

Contributing

Bad code? New feature in mind? Open an issue. Better still, learn Nim and shoot a PR

License

MIT © Anirudh Oppiliappan