{"id":20160735,"url":"https://github.com/debdut/uuid-readable","last_synced_at":"2025-04-04T17:05:57.021Z","repository":{"id":41097478,"uuid":"280972261","full_name":"Debdut/uuid-readable","owner":"Debdut","description":"Generate Easy to Remember, Readable UUIDs, that are Shakespearean and Grammatically Correct Sentences 🥳","archived":false,"fork":false,"pushed_at":"2023-01-19T05:26:59.000Z","size":1274,"stargazers_count":809,"open_issues_count":4,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T16:05:42.694Z","etag":null,"topics":["human-readable","id","identifier","readable","shakespeare","unique","universal","uuid","uuid-generator","uuid-v4","uuid-v5"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Debdut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"debdut","ko_fi":"debdut"}},"created_at":"2020-07-20T00:00:00.000Z","updated_at":"2025-03-15T13:25:23.000Z","dependencies_parsed_at":"2023-02-10T20:31:32.073Z","dependency_job_id":null,"html_url":"https://github.com/Debdut/uuid-readable","commit_stats":null,"previous_names":["debdut/readable-uuid"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debdut%2Fuuid-readable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debdut%2Fuuid-readable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debdut%2Fuuid-readable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debdut%2Fuuid-readable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Debdut","download_url":"https://codeload.github.com/Debdut/uuid-readable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217175,"owners_count":20903008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["human-readable","id","identifier","readable","shakespeare","unique","universal","uuid","uuid-generator","uuid-v4","uuid-v5"],"created_at":"2024-11-14T00:15:31.433Z","updated_at":"2025-04-04T17:05:57.004Z","avatar_url":"https://github.com/Debdut.png","language":"TypeScript","funding_links":["https://github.com/sponsors/debdut","https://ko-fi.com/debdut"],"categories":[],"sub_categories":[],"readme":"# uuid-readable [![Generic badge](https://img.shields.io/twitter/follow/KarmakarDebdut?style=social)](https://twitter.com/KarmakarDebdut) [![Generic Badge](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fctt.ac%2F9y3cf)](https://ctt.ac/9y3cf)\n\n![Generic badge](https://img.shields.io/badge/build-success-brightgreen.svg) ![Generic badge](https://img.shields.io/badge/tests-100%25-brightgreen.svg)\n\n\u003e _Generate Easy to Remember, Readable UUIDs, that are **Shakespearean** and Grammatically Correct Sentences 🥳_\n\n![Logo](/assets/logo.png)\n\n- Built on UUID v4\n- Optionally pass your UUID to generate a unique sentence\n- 128 Bit Crypto Secure\n- Grammatically correct sentences\n- Easy to remember\n- Has a Shakespeare feeling\n- Universally Unique Identifier\n- Generate Low Entropy 32 Bit Tokens\n\n## Example\n\n### 128 Bit UUID Readable\n\n\u003e _Loren Chariot Addy the Titbit of Cholame questioned Cele Garth Alda and 16 windy frogs_\n\n\u003e _Drucill Hubert Lewse the Comer of Avera rejoices Fiann Craggy Florie and 5 hard trouts_\n\n\u003e _Jacquette Brandt John the Pectus of Barnsdall doubted Glenn Gay Gregg and 12 noisy stoats_\n\n### Low Entropy 32 Bit\n\n\u003e _11 pretty dragonflies regularly sang_\n\n\u003e _2 fat toads happily buzzed_\n\n### Note \n\n\u003e _Think of it this way, it's impossible to remember 32 random characters in UUID, but these sentences even though hard can be remembered, and are definitely fun!_\n\nAlternatively, generate 32 bit readable small sentences from 128 bit UUID and check later if they match.\n\n## API\n\nThanks to [uuid.rocks](https://uuid.rocks), we have an [API Endpoint](https://uuid.rocks/plain?readable)\n\n```sh\ncurl https://uuid.rocks/plain?readable\n# Joyce Ange Barrett the Orient of Alco killed Marlyn Hewett Lady and 11 strong bulls\n```\n\n## Installation\n\n```sh\nnpm install uuid-readable --save\n```\n\n## Usage\n\n```js\nconst id = require('uuid-readable')\n\nconsole.log( id.generate() )\n// Cathleen d Dieball the Monolith of Alderson reflects Arly Arnie Keenan and 18 large ants\n```\n\nPass your own UUID\n\n```js\nconsole.log( id.generate(uuid) )\n```\n\nInverse, get UUID back from Readable UUID\n\n```js\nconst uuid = '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'\nconst readable = id.generate(uuid)\nconst inverse = id.inverse(readable)\n \ninverse === uuid // true\n```\n\nLow Entropy 32bit Readable (Use as Readable Hash)\n\n```js\nconst short = id.short(uuid)\n// 5 fat toads happily buzzed\n\n// Check Later\nid.check(short, uuid) //true\n```\n\nMongoDB\n\n```js\nconst id = require('uuid-readable')\n\nreadable_id: {\n  'type': String,\n  'default': id\n}\n\n// or use as real id\n\n_id: {\n  'type': String,\n  'default': id\n}\n```\n\n## How does it work?\n\nUUID is converted to 128 bits. \n\n- 12 bits for first name\n- 11 bits for middle name\n- 14 bits for last name\n- 13 bits for a personal pronoun\n- 13 bits for name of place\n- 10 bits for verb\n- 12 bits for first name\n- 11 bits for middle name\n- 14 bits for last name\n- 5 bits for number of animals\n- 6 bits for animal adjective\n- 7 bits for animal\n\nFor example, 7 bits for animal means we choose one animal from a list of atleast `2**7 = 128` animals\n\nAlternatively, the inverse funcation proves that UUID and Readable UUID form a bijection, hence no loss of entropy.\n\n## Use Cases\n\n- Customer Support\n\nYou can remember parts of the id and that's enough to search it up and communicate throughout a large team. I will be using it as a secret generation for a service, and customer tickets.\n\n## Sponsors\n\n[Shakespeare Geek](http://www.shakespearegeek.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebdut%2Fuuid-readable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebdut%2Fuuid-readable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebdut%2Fuuid-readable/lists"}