{"id":21055832,"url":"https://github.com/startdusk/ws","last_synced_at":"2025-08-22T12:04:21.688Z","repository":{"id":140762744,"uuid":"461475389","full_name":"startdusk/ws","owner":"startdusk","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-27T12:18:45.000Z","size":194,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T19:15:54.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/startdusk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-20T12:06:03.000Z","updated_at":"2022-10-08T00:52:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"d660e165-659e-4cd9-829c-b50d07322a86","html_url":"https://github.com/startdusk/ws","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/startdusk%2Fws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/startdusk%2Fws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/startdusk%2Fws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/startdusk%2Fws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/startdusk","download_url":"https://codeload.github.com/startdusk/ws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243500803,"owners_count":20300774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T16:47:27.656Z","updated_at":"2025-03-14T00:12:15.052Z","avatar_url":"https://github.com/startdusk.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust 开发 Web 项目演示代码\n\n参考视频地址: [Rust Web 全栈开发教程](https://www.bilibili.com/video/BV1RP4y1G7KF?p=17)\n\n## 项目结构\n\n\u003cimg src=\"./docs/power.png\" style=\"max-width:100%;\" /\u003e\n\n## 运行开发\n\n### webservice\n\n1.修改 `.env.example` 为 `.env` 并设置为你的 PostgreSQL 数据库连接和 `webapp` 的端口\n\n2.初始化数据库, 初始化 SQL 文件, [点击这里](./webservice/docs/)\n\n3.根目录运行:\n\n```bash\n$ make run\n```\n\n### webapp\n\n后端渲染，没啥可说的，上面的 `make run` 一并和 `webservice` 运行了\n\n### wasm-client\n\n注意：这里用 Webassembly 开发绕了一个大圈, 主要是为了学习 Webassembly 在 Web 中的使用, 并不是所有的 Rust crate 都能在 Webassembly 里使用, 只有一小部分能使用\n\n1.编译\n\n```\n$ cd wasm-client\n$ wasm-pack build\n```\n\n2.让前端加载编译好的 wasm\n\n```\n$ cd www\n$ npm install\n```\n\n3.运行 www 前端\n\n```\n$ npm run start\n```\n\n## 编译发布\n\n根目录下\n\n1.编译 `webservice` 和 `webapp`\n\n```bash\n$ cargo build --bin teacher-service --release\n$ cargo build --bin svr --release\n```\n\n然后去根目录下的 target 目录取它的二进制文件即可放在服务器运行, 注意执行前要把 `.env` 文件里面的环境变量设置上\n\n2.编译 `wasm-client`\n\n```bash\n$ wasm-pack build --release\n$ cd wwww\n$ npm install\n$ npm build\n```\n\n然后取 `dist` 目录去服务器\n编译好的 `dist` 本身不能运行, 它需要一个 http 服务器, 可以在服务器安装 `http-server`\n\n```bash\n$ npm install -g http-server\n$ http-server ./dist -p 8081 # 可以指定你想要的端口\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstartdusk%2Fws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstartdusk%2Fws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstartdusk%2Fws/lists"}