https://github.com/startdusk/ws
https://github.com/startdusk/ws
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/startdusk/ws
- Owner: startdusk
- License: mit
- Created: 2022-02-20T12:06:03.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-02-27T12:18:45.000Z (over 4 years ago)
- Last Synced: 2025-01-20T19:15:54.731Z (over 1 year ago)
- Language: Rust
- Size: 189 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rust 开发 Web 项目演示代码
参考视频地址: [Rust Web 全栈开发教程](https://www.bilibili.com/video/BV1RP4y1G7KF?p=17)
## 项目结构

## 运行开发
### webservice
1.修改 `.env.example` 为 `.env` 并设置为你的 PostgreSQL 数据库连接和 `webapp` 的端口
2.初始化数据库, 初始化 SQL 文件, [点击这里](./webservice/docs/)
3.根目录运行:
```bash
$ make run
```
### webapp
后端渲染,没啥可说的,上面的 `make run` 一并和 `webservice` 运行了
### wasm-client
注意:这里用 Webassembly 开发绕了一个大圈, 主要是为了学习 Webassembly 在 Web 中的使用, 并不是所有的 Rust crate 都能在 Webassembly 里使用, 只有一小部分能使用
1.编译
```
$ cd wasm-client
$ wasm-pack build
```
2.让前端加载编译好的 wasm
```
$ cd www
$ npm install
```
3.运行 www 前端
```
$ npm run start
```
## 编译发布
根目录下
1.编译 `webservice` 和 `webapp`
```bash
$ cargo build --bin teacher-service --release
$ cargo build --bin svr --release
```
然后去根目录下的 target 目录取它的二进制文件即可放在服务器运行, 注意执行前要把 `.env` 文件里面的环境变量设置上
2.编译 `wasm-client`
```bash
$ wasm-pack build --release
$ cd wwww
$ npm install
$ npm build
```
然后取 `dist` 目录去服务器
编译好的 `dist` 本身不能运行, 它需要一个 http 服务器, 可以在服务器安装 `http-server`
```bash
$ npm install -g http-server
$ http-server ./dist -p 8081 # 可以指定你想要的端口
```