Skip to main content

Roke

Roke is a tool and a library to create identifiers. The goal is that these identifiers should be:

  • More or less unique.
  • Easy to read, so you can read it to someone else over a phone, for example.
  • Configurable: not a single pattern in how they look
  • Customizable: it should be easy to do things like "make it work in spanish"

To do this, inspired by a talk about Magic Wormhole ... I did pretty much the same thing they did.

Command Line Tool

By default, Roke will give you identifiers made out of two nouns and a small number. Like this:

$ roke
19-hassock-disregard

You can tell roke to print more than one identifier, so you can choose a nice one.

$ roke --count 5
9-vibrissae-truth
4-bathrobe-somewhere
10-dysfunction-overview
19-aardvark-viola
5-mutt-pamphlet

You can change the pattern of the identifiers:

$ roke --count 5 --pattern '{noun}+{noun}'
plate+pasture
pickle+syrup
colloquy+bracelet
prisoner+businessman
membrane+approach

Roke comes with two basic dictionaries:

You can add more dictionaries by putting files with the ".txt" extension and one word per line in any of the following places:

~/.local/roke
.roke

Python Library

You can use Roke inside your own projects by using it as a library. This example shows how:

>>> import roke
>>> roke.load_dicts()
>>> roke.gen_identifier('{noun}-{smallnum}')
'village-18'

That's all there is to it.

Technical Notes

So, how unique are the identifiers?

If you use the default pattern {smallnum}-{noun}-{noun} there are only 925 072 020 possible identifiers. So: NOT VERY UNIQUE.

Do not use this as a password or a secret! ... at least not using that pattern.

They should be unique enough for situations where you just need something to be "unique for a while" in a certain environment. Like, container names, or maybe your children.

Mandatory XKCD:

XKCD

Full Comic

Why the name?

Roke is the name of an island in Earthsea. To know more about Roke and names, just read the Earthsea books by Ursula K LeGuin, they are awesome.

Metadata

Release files for roke 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for roke 0.1.3
File Size Uploaded
roke-0.1.3.tar.gz 27.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for roke 0.1.3
File Interpreter ABI Platform
roke-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 53.1 kB

Release files / roke-0.1.3.tar.gz

Download URL roke-0.1.3.tar.gz
Size 27.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ff9b605e61ded31fa5a6aa497378b3878e055b9538eaf7081815cf960c309a3d
BLAKE2b-256 checksum
How to use checksums
25475e1a9801b70fa58648c6989bc3c3794902db4638ccf52dc1b1c4fb0f5738
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/6.2.1-arch1-1

Release files / roke-0.1.3-py3-none-any.whl

Download URL roke-0.1.3-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
700b0bc3a68e3a793332d488ecae1c1fced4fd1714757d7c5f5a0ddbd637e13e
BLAKE2b-256 checksum
How to use checksums
436f22f513ba45c46936fce0d58b313646c2ebddee3f2b6c485a57561cb1039d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/6.2.1-arch1-1

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page