Skip to content

craft-and-code/rollr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎲 Rust Dice Roller

Crates.io Docs.rs CI

A small CLI tool to roll dice or flip a coin using Rust.

Features

  • Roll dice in RPG format (e.g., 2D20, 1D6)
  • Flip a coin with commands like flipcoin, flip, or f
  • Only allows valid dice types: D3, D4, D5, D6, D7, D8, D10, D12, D14, D16, D20, D24, D30, D50, D60, D100
  • Graceful fallback to default 1D6 if input is missing or malformed

🧠 Supported Input Formats

Input Behavior
(none) Defaults to rolling 1D6
D6 Interpreted as 1D6
2D20 Rolls two D20 dice
3d100 Case-insensitive → 3D100
1 Interpreted as 1D6
1D Fallback → 1D6
2D99 Invalid die type → fallback to 2D6
fezfe Malformed → fallback to 1D6

Dice types not included in the supported enum are automatically rejected and fallback to D6.

📚 Library & CLI

This project is structured as a hybrid library + binary crate:

It provides:

  • A CLI entry point in src/main.rs,
  • Reusable modules:
    • dices.rs: handles parsing and validating dice expressions,
    • throw.rs: handles random dice rolls and coin flips.

📦 As a library dependency

You can install it with:

cargo add rollr

Or manually add it to your Cargo.toml:

[dependencies]
rollr = "0.1.0"

If you’re using the crate locally (e.g. during development), reference it via a local path:

[dependencies]
rollr = { path = "../path/to/rollr" }

🧰 As a binary

You can also use rollr as a command-line tool without embedding it into another project.

🚀 Running from source:

cargo run -- 3D20
cargo run -- flip

📦 Install locally (for global CLI use):

Install it as a binary:

cargo install rollr

Then use it from anywhere:

rollr 2D6
rollr flip

Don’t forget to add $HOME/.cargo/bin to your PATH if it’s not already.

About

A small CLI tool to roll dice or flip a coin using Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages