Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dxps/fullstack-rust-axum-dioxus-rwa

A RealWorld app implementation as a fullstack Rust project using Axum (back-end) and Dioxus (front-end).
https://github.com/dxps/fullstack-rust-axum-dioxus-rwa

axum dioxus fullstack-rust rust rust-lang

Last synced: about 1 month ago
JSON representation

A RealWorld app implementation as a fullstack Rust project using Axum (back-end) and Dioxus (front-end).

Awesome Lists containing this project

README

        

# ![RealWorld Example App](logo.png)

> ### [Dioxus](https://dioxuslabs.com/) and [Axum](https://github.com/tokio-rs/axum) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld) spec and API.

### [Demo](https://demo.realworld.io/)    [RealWorld](https://github.com/gothinkster/realworld)

This codebase was created to demonstrate a fully fledged fullstack application built with **[Dioxus](https://dioxuslabs.com/)** (as front-end) and **[Axum](https://github.com/tokio-rs/axum)** (as back-end), including routing, authentication, CRUD operations, authentication, and more.

We've gone to great lengths to adhere to the styleguides & best practices promoted by these frameworks. For more information on how to this works with other frontends/backends, head over to the [RealWorld](https://github.com/gothinkster/realworld) repo.


# How it works

This project uses the classic three-tier architecture:

```
╭───────────────╮ ╭────────────────╮ ╭────────────────╮
│ Front-end │ │ Back-end │ │ Database │
│ (Dioxus) ├──────►│ (Axum) ├──────►│ (PostgreSQL) │
╰───────────────╯ ╰────────────────╯ ╰────────────────╯
```


# Getting started

First, have the database available as described in backend's [readme](./backend/readme.md) by starting it and run the database migration (that populates it with the required objects).

Next, for local development and usage, just run `./run_dev.sh` script that starts both the front-end and the back-end.