该项目的目标是编写一个完整的Web应用程序,包括Rust中的后端和前端。
Rust wasm Rust app
in browser <- REST -> HTTP Server -- actix-web
| |
Yew Diesel (ORM) -> PostgreSQL需要实现以下构建依赖项,以支持此应用程序的完整功能集:
该应用程序由前端和后端组成。为了开始黑客入侵,可以通过make run-backend进行测试,而前端可以通过make run-frontend进行测试。如果需要,您可以在Config.toml中调整应用程序配置。
这将在Ubuntu或Debian上安装Rust和Wasm-Pack的构建要求。
> 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容器和Rust后端容器。如果您想使用Docker而不是Podman,请在Makefile的顶部设置CONTAINER_RUNTIME=docker 。编辑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仅启动Rust后端容器,而run-postgres仅启动PostgreSQL容器。
如果后端和前端都在运行,则可以通过http://127.0.0.1:30080访问Web应用程序。成功加载应用程序后,您应该看到这样的身份验证屏幕:

登录屏幕将接受任何相等的用户名和密码,例如me (用户名)和me (密码)。目前尚无用户身份验证,但是非匹配组合将导致身份验证故障。成功登录后,您应该能够查看应用程序的内容:

身份验证应该持续存在,在手动页面重新加载后甚至更好。通过注销按钮从应用程序中登录也应按预期工作。
应用程序的完整控制流如下所示:

您想为这个项目做出贡献吗?哇,谢谢!因此,请仅分支它,然后给我发送拉动请求。