version 0.1.0
Requires Rust edition 2021 or later
- Clone the project locally
- Build the backend: run
cargo build --release
- Build the frontend: run
cd ./client/frontend
and thenyarn build
- Use the scripts in the sql directory to migrate and bootstrap the database
- Create a .env file from the .env.example file replacing
- DATABASE_URL with the database username, password, hostname and port, and schema
- Run
cargo run
to build and run locally -or- - Run
target/permission
to run the production deployable
Run cargo run
to run the backend -or-
Use the docker-compose.yaml file to run the application and all of it dependencies
The backend is located in the src directory, it is written in Rust and currently uses the Actix web framework, the Diesel ORM framework, and Serde for JSON parsing. The backend currently only works with a MySQL/MariaDB database.
The frontend code is meant as an example of how to access the backend and has two parts.
- client/frontend is written in React/Typescript and is used to create users, roles, and permissions.
- client/usages is a collection of frontend and backend examples of usages
- No authorization or authentication is provided
- Only works with MySQL/MariaDB
- No caching (Redis, etc)
- No unit tests
- Need to refactor to be more idiomatic Rust code
- Universal message format, mainly completed for errors
- Create library to use as middleware for Rust web frameworks