Vasuki generates different kinds of random unique identifiers, tokens, and words.
It can be used as a library and as an HTTP service, aiming to provide effortless identifier generation for your applications.
A public instance of the HTTP service is available at https://api.hiveeyes.org/vasuki/.
# UUIDv4 universally unique identifier. vasuki uuid # ULID universally unique lexicographically sortable identifier. vasuki ulid # Gibberish random, pronounceable pseudo-words vasuki gibberish # MomentName short epoch slugs vasuki moment # Nagamani19 short, unique, non-sequential identifier. vasuki naga19
pip install vasuki
With service API:
pip install 'vasuki[service]'
Please note this software is a work in progress, and its interfaces may change. For those reasons, if you use it as a dependency in your own programs, version pinning is always recommended.
- UUIDv4 universally unique identifier
- ULID universally unique lexicographically sortable identifier
- Gibberish random, pronounceable pseudo-words
- MomentName, a short epoch slug
- Nagamani19, a short, unique, non-sequential identifier based on Hashids and a custom Epoch starting on January 1, 2019.
Time and randomness is usually taking from the system as implemented by the libraries underpinning this package.
- six-nibble-name converts six nibbles (three bytes) into a 4-character name
The fine responder library optionally exposes the machinery as HTTP API.
# UUIDv4 vasuki uuid d192b464-d32c-48f1-9c23-0fe04a4e8133 # ULID vasuki ulid 01DEFKXYCJ0E91DQY0YPWZY01D # Gibberish vasuki gibberish shoomly # MomentName vasuki moment Zese # Nagamani19 vasuki naga19 Xm3k6mWq
Vasuki can apply uppercase or lowercase transformation to the generated identifier or word:
# UUIDv4, uppercase vasuki uuid --upper 43FA0272-CA48-40AE-8CC1-204302D91D89 # ULID, lowercase vasuki ulid --lower 01defkz01k47dqkvcyhy0mz06e
vasuki gibberish --size medium schreblyiopp
vasuki slug 42 --format=sixnibble Baca
vasuki naga19 --count 10 vasuki gibberish --size large --count 50
Start the Vasuki service as daemon:
vasuki service
Example requests would look like:
# UUIDv4 /unique/uuid # Uppercase UUIDv4 /unique/uuid?upper=true # Multiple ULIDs /unique/ulid?count=10 # Very short Nagamani19 /unique/naga19?size=small
Acquire sources:
git clone https://github.com/daq-tools/vasuki cd vasuki
Install development sandbox:
python3 -m venv .venv source .venv/bin/activate pip install --editable='.[service,develop,docs,test]' vasuki --version
Run linter and software tests:
poe check
The algorithms and procedures curated here generate different kinds of random and pseudo-random identifiers, tokens, names or passwords.
While some generated tokens max out on the randomness and uniqueness aspects like UUIDs, others compromise on the time vs. space domain but focus more on human memorability and empathize with their common sense and humor.
Saying that, it is important to understand their properties and features when using those identifiers in different contexts. YMMV.
For more in-depth information, enjoy reading Understanding UUIDs, ULIDs and String Representations and its corresponding discussion.
Please refer to the LICENSE file for further information and caveats about warranty and licensing information.
You are responsible for using this software responsibly, it comes without warranty of any kind.
- Andrew Hawker for https://github.com/ahawker/ulid
- David Aurelio for https://github.com/davidaurelio/hashids-python
- Gregory Haskins for https://github.com/greghaskins/gibberish
- Oliver Robson for https://github.com/HowManyOliversAreThere/six-nibble-name
- All authors for all other fine pieces this software is made of.
- Mozilla for Zilla Slab
- Vasuki Logo from https://en.wikipedia.org/wiki/Vasuki
Kurma is one of the avatars of Vishnu. He appears in the form of a tortoise or turtle to support the foundation of the cosmos, while the gods and demons churn the cosmic ocean with the help of serpent Vasuki to produce the nectar of immortality.
Vasuki is a naga serpent king, occasionally coiling around Kurma's or Shiva's neck, who blessed and wore him as an ornament. He is described as having a gem called Nagamani on his head.