projectmoon
8c8ed4f6ef
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). |
||
---|---|---|
migrations | ||
proto | ||
src | ||
templates | ||
.env | ||
.gitignore | ||
COPYING | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
Rocket.toml | ||
build.rs | ||
diesel.toml | ||
rust-toolchain |
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.