Skip to content
AnhelmzPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

namegen — random adjective–noun names in Go

namegen is a tiny open source Go library that builds random, human-readable names by combining words from built-in lists. It is useful when you need memorable strings for development environments, internal hostnames, test databases, staging services, container or VM labels, demo tenants, or anywhere you want something easier to say than a UUID.

You describe the shape with a template string: each {adj} becomes a random adjective and each {noun} a random noun. That gives you the familiar “adjective-noun” style (similar in spirit to Docker’s random container names), with hundreds of thousands of combinations out of the box.

Install

go get github.com/Anhelmz/namegen

Requires Go 1.24+ (see go.mod). That is the lowest version where this module builds as-is: the library uses math/rand/v2, and the tests use testing.B.Loop.

Quick start

import "github.com/Anhelmz/namegen"

namegen.GenerateName("{adj}-{noun}")           // e.g. swift-falcon
namegen.GenerateName("{adj}_{noun}")           // e.g. nimble_harbor
namegen.GenerateName("{adj}_{adj}_{noun}")     // two independent adjectives

The only public API is GenerateName(template string) string. Placeholders are replaced in one pass; every {adj} and {noun} gets its own random pick. Literal text (hyphens, underscores, digits you add yourself) is left as-is.

Custom vocabulary

Word lists live under words/ (adjectives.txt, nouns.txt): one word per line, # comments and blank lines ignored. They are embedded with //go:embed, so your binary ships with the lists you had at build time—fork the repo or vendor the package and edit the files to match your tone (strictly professional, playful, nature-only, etc.).

Vocabulary size and combination counts

The bundled lists currently contain 532 adjectives and 850 nouns. Separators (- vs _) do not change how many outcomes exist; only the number of placeholders matters.

Template Formula Approximate combinations
{adj}-{noun} or {adj}_{noun} 532 × 850 452,200
{adj}_{adj}_{noun} 532 × 532 × 850 240,570,400

Each placeholder is an independent draw, so the same adjective can appear twice in {adj}_{adj}_{noun}. After you change the word files, multiply your own counts the same way.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages