An open source online character sheet service for tabletop roleplaying games.
Go to file
projectmoon 5ea07b8953 Rip out Diesel in favor of SQLx.
The primary benefit of this is to avoid Rocket's database integration,
which has become problematic in this codebase with the update to the
new async style. Because the async database API is actually
synchronous under the hood, this introduces some annoying lifetime
requirements that basically force us to use owned data everywhere.

The original pattern was to have a separate data layer that could
invoke queries from `self` (the db connection). By using a true async
database driver, we can get this back, because the lifetimes are once
again flexible instead of the ones forced by Rocket.
2020-12-31 14:11:28 +00:00
migrations Switch character data type to an enum, including schema patch. 2020-12-08 22:28:27 +00:00
proto Start of adding protobuf-based editable character sheet. 2020-12-27 21:03:10 +00:00
src Rip out Diesel in favor of SQLx. 2020-12-31 14:11:28 +00:00
static/scripts Implement editing of attributes. 2020-12-27 21:49:08 +00:00
templates Implement editing of attributes. 2020-12-27 21:49:08 +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 Rip out Diesel in favor of SQLx. 2020-12-31 14:11:28 +00:00
Cargo.toml Rip out Diesel in favor of SQLx. 2020-12-31 14:11:28 +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 Change global databases to debug (for development) 2020-12-14 19:06:21 +00:00
build.rs Start of adding protobuf-based editable character sheet. 2020-12-27 21:03:10 +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.