An open source online character sheet service for tabletop roleplaying games.
Go to file
projectmoon 8c8ed4f6ef Migrate to Rocket 0.5.
Rocket 0.5 is a major uprade, rewriting most of Rocket to be async.
Required many changes through the code, especially the database layer.
The new Rocket async database calls require Futures with 'static
lifetimes.

General:
 - Move to stable rust.
 - Most of codebase is now async.
 - Rocket migrations (e.g. Cookies to CookieJar).

Database:
 - Switched to owned data (&str -> String) for inserts because of the
   'static lifetime requirement on Rocket's DB future.
 - All database methods now asynchronous.

Pages:
 - Changed various routes to async.
 - Needed to add clone calls to some places because we need to use
   owned data multiple times (registration).
2020-12-13 21:58:39 +00:00
migrations Switch character data type to an enum, including schema patch. 2020-12-08 22:28:27 +00:00
proto Serialize characters as protobufs. Skeletal character creation. 2020-12-07 22:37:18 +00:00
src Migrate to Rocket 0.5. 2020-12-13 21:58:39 +00:00
templates Finished and mostly clean new character flow. 2020-12-09 21:25:31 +00:00
.env First commit; prototype state. 2020-12-03 19:21:09 +00:00
.gitignore First commit; prototype state. 2020-12-03 19:21:09 +00:00
COPYING Add license. 2020-12-03 19:21:09 +00:00
Cargo.lock Migrate to Rocket 0.5. 2020-12-13 21:58:39 +00:00
Cargo.toml Migrate to Rocket 0.5. 2020-12-13 21:58:39 +00:00
LICENSE Add license. 2020-12-03 19:21:09 +00:00
README.md Super basic readme. 2020-12-09 21:45:56 +00:00
Rocket.toml Migrate to Rocket 0.5. 2020-12-13 21:58:39 +00:00
build.rs Add serde serialization suppor to proto types. 2020-12-08 08:47:34 +00:00
diesel.toml Switch character data type to an enum, including schema patch. 2020-12-08 22:28:27 +00:00
rust-toolchain Migrate to Rocket 0.5. 2020-12-13 21:58:39 +00:00

README.md

Tenebrous Sheets

An open source character sheet service for tabletop roleplaying games.

Currently under heavy development.

Build Instructions

These are very basic build instructions. They assume you already have cargo set up and installed. Building the application requires Rust Nightly! See rustup documentation for more, particularly the part about using Rust Nightly.

Install Dependencies

Install dependencies. The exact method depends on your OS.

  • sqlite3 and development headers (Void Linux: xbps-install sqlite sqlite-devel, Ubuntu: apt install sqlite3 libsqlite3-dev).
  • protoc: protocol buffers compiler. There is one baked into the build, so you should not need this unless you are not using Linux/Mac/Windows.

Initial Setup

Follow these instructions from the root of the repository. Set up database:

cargo install diesel_cli --no-default-features --features sqlite
diesel setup
diesel migration run

Run Application

If you are using rustup, then it should automatically switch to the nightly version of Rust in this repository. This is because of the rust-toolchain file.

Command line "instructions" to build and run the application:

cargo run

The sqlite database is currently always created in the same directory that cargo run was invoked from, so make sure you invoke it from the same place every time.