A petname library and command-line tool in Rust. Dustin Kirkland's petname project is the inspiration for this project. The word lists and command-line UX here are taken from there. Check it out! Dustin also maintains libraries for Python 2 & 3, and Golang.
``` $ petname --help rust-petname 1.0.1 Gavin Panella gavinpanella@gmail.com Generate human readable random names.
USAGE: petname [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-c, --complexity
Based on Dustin Kirkland's petname project https://github.com/dustinkirkland/petname.
$ petname untaunting-paxton
$ petname -s _ -w 3 suitablyoverdelicatejamee ```
There's a petname::Petnames
struct:
rust
pub struct Petnames<'a> {
pub adjectives: Vec<&'a str>,
pub adverbs: Vec<&'a str>,
pub names: Vec<&'a str>,
}
You can populate this with your own word lists, but there's a convenient default which uses the word lists from upstream petname. The other thing you need is a random number generator from rand:
rust
let mut rng = rand::thread_rng();
let pname = petname::Petnames::default().generate(&mut rng, 7, ":");
There's also a convenience function that'll do this for you:
rust
let pname = petname::petname(7, ":")
It's probably best to use the generate
method if you're building more than a
handful of names.
To install the command-line tool:
cargo install petname
.Alternatively, to hack the source:
cargo build
.After installing the source (see above) run tests with: cargo test
.
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.