本课程是通过一个真实的 Web 网站应用开发的项目,来深入学习和掌握使用 Rust 进行 Web 全栈开发的技能。
Rust Web 全栈开发高级实验班将学习的技术栈选型为:前端yew + 后端actix-web + GraphQL 连接数据库MongoDB
特别说明,全部 使用 Rust 语言!
学习目标和要求:
1. 掌握Rust Web全栈开发的技能
2. 了解使用Rust开发上线一个网站的全过程
学习时间安排:
1. 每周安排3个晚上学习,周三晚上9:00-11:00,周六周日晚上8:00-10:00。
2. 学习时间共3周,其中第一周侧重项目开发框架的介绍,第二周侧重项目的已有功能编码开发,第三周侧重真实参与开发项目的二期需求。
技术栈选型
前端
- yew - yew 是一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 web 应用。
- tokio - tokio 是 Rust 中的异步编程框架,它将复杂的异步编程抽象为 Futures、Tasks 和 Executor,并提供了 Timer 等基础设施。
- wasm-pack - wasm-pack 是 Rust-Wasm 官方工作组开发,用于构建wasm应用程序的工具。
- reqwest - reqwest 是一个简单的 Rust HTTP 客户端,reqwest的async使用的是Tokio的,所以要同时加入Tokio的依赖。
后端
- actix-web - actix-web 是采用 Rust 开发的一个 Web 框架。它强大快速切于实际,是采用 Rust 进行 Web 开发的最佳选择。
- hyper - hyper是一个偏底层的http库,支持HTTP/1和HTTP/2,支持异步Rust,提供了服务端和客户端的API支持。
- async-graphql - async-graphql是用Rust语言实现的GraphQL服务端库。
- tracing - tracing 是用于检测 Rust 程序以收集结构化的、基于事件的诊断信息的框架。
- tracing-subscriber - tracing-subscriber 能够使用log库和模块发出的消息。
- serde - serde 是rust语言用来序列化和反序列化数据的一个非常高效的解决方案。
- mongodb - mongodb 是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
数据库
- MongoDB - 来自 MongoDB 官方支持的 MongoDB Rust 驱动程序,该客户端库可用于与 Rust 应用程序中的 MongoDB 部署进行交互。