boilerplate project using yew + actix-web + graphql + mongodb
- yew - yew 是一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 web 应用。
- tokio - tokio 是 Rust 中的异步编程框架,它将复杂的异步编程抽象为 Futures、Tasks 和 Executor,并提供了 Timer 等基础设施。
- wasm-pack - wasm-pack 是 Rust-Wasm 官方工作组开发,用于构建wasm应用程序的工具。
- reqwasm - reqwasm 是一个简单的 Rust HTTP 客户端,它内部提供的所有http request方法都来自gloo-net
- 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 部署进行交互。
$ brew install mongodb-community@4.0
$ mkdir -p /tmp/db
$ mongod --dbpath /tmp/db
$ Add a db named "myApp"
$ Add a collection named "users" to "myApp"
$ Add a record to users documents
{
first_name: "Jane",
last_name: "Doe",
username: "janedoe",
email: "example@example.com",
}
$ Add a collection named "todos" to "myApp"
$ Add a record to todos documents
{
"id" : "1",
"description" : "COOK",
"completed" : false,
"editing" : false
}
$ cargo build
$ cargo run --bin server
visit http://localhost:8080/
cargo install trunk
cd client && trunk serve
visit http://127.0.0.1:3000/
* don't replace host 127.0.0.1 by localhost
if you want to start serve with specific port, by executing below cmd
trunk serve --port=xxx --proxy-backend=http://127.0.0.0:8080/api