Skip to content

RPG dice roller with both Rust CLI and ClojureScript Web interfaces

License

Notifications You must be signed in to change notification settings

deciduously/roll

Repository files navigation

roll

Build Status

Web and CLI interface to roll dice.

Usage

  • yarn dev and point browser to localhost:3449 for figwheel and watching the Rust backend. If you don't issue :cljs/quit at the REPL or you'll have to kill figwheel some other way.
  • yarn prod and point browser to localhost:8080 for the production build.
  • yarn demo for a dev server with no hot-reloading - point your browser to localhost:8080.

For EMACS/CIDER, run yarn emacs and then from Emacs invoke M-x cider-jack-in-clojurescript. You'll need to invoke (start-figwheel!). Further instructions can be found here.

The backend component also has two other CLI modes:

  • Invoke with repl as the first arg for a REPL which will evaluate commands in sequence separated by spaces and prompt for further input until a SIGINT.
  • Invoke with your command as space-separated arguments to run a single operation.

You can run the webserver directly via roll (cargo run) or roll serve (cargo run -- serve).

Command formats:

  • A list of valid rolls in XdX format, separated by spaces - 1d2 2d4 3d8
  • A list of string identifier to lookup in the item table - blello, blello, ian
  • A multiplier followed by either a list of valid rolls or a string identifier - 3 1d7, 3 1d8 2d9, 3 blello, 3 blello ian

The multiplier is a little buggy on the web side - it only rolls out the first trailing arg. Stay tuned.

Web server endpoints:

  • GET /roll/:cmd where :cmd is any of the above, but separated by slashes instead of spaces: /roll/1d6, /roll/2d8/3d9, /roll/3/10d20, /roll/9/blello/ian
  • GET /items returns all the items stored in db.sqlite
  • POST /item with an application/json request body like '{"name": "blaster","damage": "1d8"}' to insert that item into the DB

Dependencies

  • Stable rust 1.25.0+
  • Java JRE 1.8+
  • yarn
  • lein
  • cargo-watch

Libraries

Rust Crates

ClojureScript Libraries

About

RPG dice roller with both Rust CLI and ClojureScript Web interfaces

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published