L'objectif de ce projet consiste à rédiger une application Web complète, y compris le backend et le frontend dans Rust.
Rust wasm Rust app
in browser <- REST -> HTTP Server -- actix-web
| |
Yew Diesel (ORM) -> PostgreSQLLes dépendances de construction suivantes doivent être remplies pour prendre en charge l'ensemble de fonctionnalités complet de cette application:
L'application se compose d'un frontend et d'un backend. Pour commencer avec le piratage, le backend peut être testé via make run-backend , tandis que le frontend peut être testé avec make run-frontend . Vous pouvez adapter la configuration de l'application dans Config.toml si nécessaire.
Cela installe les exigences de construction, Rust et Wasm-Pack, sur Ubuntu ou Debian.
> sudo apt-get update
> sudo apt-get install -y pkg-config libssl-dev npm sudo wget
> wget https://sh.rustup.rs -O rustup-init
> sudo sh rustup-init -y
> cargo install wasm-pack
> sudo npm install -g rollupCela construit le projet.
> git clone https://github.com/saschagrunert/webapp.rs.git
> cd webapp.rs
> make all make deploy utilise Podman pour démarrer un conteneur postgresql et le récipient backend Rust. Si vous souhaitez utiliser Docker au lieu de Podman, définissez CONTAINER_RUNTIME=docker en haut de Makefile . Modifier Config.toml si nécessaire pour définir l'URL du backend et les informations d'identification PostgreSQL:
[ server ]
url = " http://127.0.0.1:30080 "
...
[ postgres ]
host = " 127.0.0.1 "
username = " username "
password = " "
database = " database "Assurez-vous que les dépendances d'exécution sont installées, puis démarrez les deux conteneurs.
> sudo apt install -y postgresql-client
> cargo install diesel_cli --no-default-features --features " postgres "
> sudo make deploy L'application doit désormais être accessible à http://127.0.0.1:30080 . Pendant le développement, vous pouvez démarrer les conteneurs séparément, en utilisant make run-app pour démarrer uniquement le conteneur backend Rust et run-postgres pour démarrer uniquement le conteneur PostgreSQL.
Si le backend et le frontend fonctionnent, vous pouvez visiter l'application Web à http://127.0.0.1:30080 . Après le chargement réussi de l'application, vous devriez voir un écran d'authentification comme ceci:

L'écran de connexion acceptera tout nom d'utilisateur et mot de passe égal, comme me (nom d'utilisateur) et me (mot de passe). Il n'y a actuellement aucune autre authentification des utilisateurs, mais la combinaison non correspondante entraînera une défaillance d'authentification. Après la connexion avec succès, vous devriez pouvoir voir le contenu de l'application:

L'authentification doit persister, elle est encore mieux après un rechargement de page manuelle. L'écart de l'application via le bouton de déconnexion doit également fonctionner comme prévu.
Le flux de contrôle complet de l'application ressemble à ceci:

Vous souhaitez contribuer à ce projet? Wow, merci! Alors s'il vous plaît, déboursez-le et envoyez-moi une demande de traction.