Цель этого проекта - написать полное веб -приложение, включая бэкэнд и фронт в Rust.
Rust wasm Rust app
in browser <- REST -> HTTP Server -- actix-web
| |
Yew Diesel (ORM) -> PostgreSQLСледующие зависимости от сборки должны быть выполнены, чтобы поддержать полный набор функций этого приложения:
Приложение состоит из фронта и бэкэнда. Для начала работы с взломом бэкэнд может быть проверен с помощью make run-backend , тогда как фронт может быть протестирован с помощью make run-frontend . Вы можете адаптировать конфигурацию приложения в Config.toml , если это необходимо.
Это устанавливает требования к сборке, Rust и Wasm-Pack, на Ubuntu или 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 rollupЭто строит проект.
> git clone https://github.com/saschagrunert/webapp.rs.git
> cd webapp.rs
> make all make deploy использует Podman для запуска контейнера PostgreSQL и контейнера из ржавчины. Если вы хотите использовать Docker вместо Podman, установите CONTAINER_RUNTIME=docker в верхней части Makefile . Редактировать Config.toml если это необходимо, чтобы установить бэкэнд URL и PostgreSQL учетные данные:
[ server ]
url = " http://127.0.0.1:30080 "
...
[ postgres ]
host = " 127.0.0.1 "
username = " username "
password = " "
database = " database "Убедитесь, что зависимости во время выполнения установлены, а затем запустите два контейнера.
> sudo apt install -y postgresql-client
> cargo install diesel_cli --no-default-features --features " postgres "
> sudo make deploy Приложение теперь должно быть доступно по адресу http://127.0.0.1:30080 . Во время разработки вы можете запустить контейнеры отдельно, используя make run-app , чтобы запустить только контейнер ржавчины, и run-postgres запустить только контейнер PostgreSQL.
Если работают и бэкэнд, и фронт, вы можете посетить веб -приложение по адресу http://127.0.0.1:30080 . После успешной загрузки приложения вы должны увидеть экран аутентификации, как это:

Экран входа примет любое имя пользователя и пароль, такие как me (имя пользователя) и me (пароль). В настоящее время пока нет дальнейшей аутентификации пользователей, но не совпадающая комбинация приведет к сбое аутентификации. После успешного входа в систему вы сможете увидеть содержание приложения:

Аутентификация должна сохраняться, она еще лучше после перезагрузки страницы ручной. Выход из приложения через кнопку «Выйти» также должна работать в соответствии с заступлением.
Полный поток управления приложением выглядит так:

Вы хотите внести свой вклад в этот проект? Вау, спасибо! Так что, пожалуйста, просто разбивайте его и пришлите мне запрос на привлечение.