data | ||
public | ||
rust-letter-be | ||
rust-letter-fe | ||
src | ||
templates | ||
.gitignore | ||
Cargo.toml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
Rocket.toml |
Dioxus (& Rocket) - letter.werefox.cafe
A re-implementation of the Valentine's Day site I made, but using Rust's Dioxus crate and Rocket crate.
Usage
This project works by using a Cargo workspace with two projects
rust-letter-fe
andrust-letter-be
Backend
You can develop the backend by simply running the project from the root directory
cargo run
Generally, any commands you'd use for any other standard Rust project will work for this.
Ex:
cargo build
Frontend
If you want to develop the Dioxus frontend, you'll need to do the following:
- From the official Dioxus docs, ensure you have
dioxus-cli
and thewasm32-unknown-unknown
target installed
cargo install dioxus-cli
rustup target add wasm32-unknown-unknown
- Additionally, you may need to have the Tauri prerequisites installed.
Then, you should be able to run the development server after moving into the rust-letter-fe
directory.
(Linux example)
cd rust-letter-fe && dioxus serve
If you'd link to know about how to use dioxus-cli
, you should run dioxus --help
or reference the official documentation.*
* At the time of writing this, the link to the documentation is broken. If you'd like to see what I normally use to run the project, here's an example: dioxus serve --hot-reload --port [port #]
Running
Here are some ways you can run the project
Cargo
You can either do the standard run --release
cargo run --release
Or, referencing the Dockerfile, you can install and then run.
cargo install --path .
rust-letter
Docker
You can run this in a container using the included Dockerfile
.
docker build -t rust-letter-werefox-cafe
docker run -p 3469 -d -t rust-letter-werefox-cafe
Or, run through docker compose.
docker compose up --build -d
Project Structure
.dioxus-letter-werefox-cafe
|- data # text files that will be read to for data in the app
|- public # save the assets you want include in your project.
|- rust-letter-be
|\
||- src # source code folder for backend
|- rust-letter-fe
|\
||- src # source code folder for frontend
||\
|||- utils # save some public function
|||- components # save some custom components
|- src # code for running the workspace
|- templates # put template files here, right now just using handlebar