El objetivo de este proyecto es escribir una aplicación web completa que incluya backend y frontend dentro de Rust.
Rust wasm Rust app
in browser <- REST -> HTTP Server -- actix-web
| |
Yew Diesel (ORM) -> PostgreSQLSe deben cumplir las siguientes dependencias de compilación para admitir el conjunto de características completas de esta aplicación:
La aplicación consiste en una interfaz y un backend. Para comenzar con la piratería, el backend se puede probar a través de make run-backend , mientras que el frontend se puede probar con make run-frontend . Puede adaptar la configuración de la aplicación dentro de Config.toml si es necesario.
Esto instala los requisitos de compilación, Rust y Wasm-Pack, en Ubuntu o 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 rollupEsto construye el proyecto.
> git clone https://github.com/saschagrunert/webapp.rs.git
> cd webapp.rs
> make all make deploy usa Podman para iniciar un contenedor PostgreSQL y el contenedor de backend de óxido. Si desea usar Docker en lugar de Podman, establezca CONTAINER_RUNTIME=docker en la parte superior de Makefile . Editar Config.toml si es necesario para establecer la URL de backend y las credenciales de PostgreSQL:
[ server ]
url = " http://127.0.0.1:30080 "
...
[ postgres ]
host = " 127.0.0.1 "
username = " username "
password = " "
database = " database "Asegúrese de instalar las dependencias de tiempo de ejecución y luego inicie los dos contenedores.
> sudo apt install -y postgresql-client
> cargo install diesel_cli --no-default-features --features " postgres "
> sudo make deploy La aplicación ahora debe estar accesible en http://127.0.0.1:30080 . Durante el desarrollo, puede iniciar los contenedores por separado, utilizando make run-app para iniciar solo el contenedor de back-end de óxido y run-postgres para iniciar solo el contenedor PostgreSQL.
Si se están ejecutando tanto el backend como el frontend, puede visitar la aplicación web en http://127.0.0.1:30080 . Después de la carga exitosa de la aplicación, debe ver una pantalla de autenticación como esta:

La pantalla de inicio de sesión aceptará cualquier nombre de usuario y contraseña que sean iguales, como me (nombre de usuario) y me (contraseña). Actualmente no hay más autenticación del usuario todavía, pero la combinación no coincidente dará como resultado una falla de autenticación. Después del inicio de sesión con éxito, debería poder ver el contenido de la aplicación:

La autenticación debería persistir, es aún mejor después de una página manual de recarga. La sesión de la aplicación a través del botón de inicio de sesión también debe funcionar según lo previsto.
El flujo de control completo de la aplicación se ve así:

¿Quieres contribuir a este proyecto? ¡Guau, gracias! Así que, por favor, solo lo hagas y envíame una solicitud de extracción.