Skip to content

rustedu/yew-actix-graphql-mongodb-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yew-actix-graphql-mongodb-boilerplate

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 部署进行交互。

How to

How to install MongoDB on Mac

$ 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
}

How to build

$ cargo build

How to run server

$ cargo run --bin server

visit http://localhost:8080/

How to run client

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

Referrence Links

Yew

Actix-web

Actix-web + MongoDB

如何使用Actix-web和MongoDB构建简单博客网站

Actix-web + GraphQL + MongoDB

Yew + Todos

Yew + Reqwest

Awesome Yew

About

boilerplate project using yew + actix-web + graphql + mongodb

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published