🔮
Rust学习笔记
  • 介绍
  • Rust入门
    • 安装使用
    • Cargo初用
    • 其他工具
    • 实例1
    • vim安装及配置
    • rust analyzer速度慢
  • rust基础
    • 关键字
    • 模块module和测试
    • 变量-数据类型
      • 浮点数
      • NaN
      • 有理数和复数
    • 单元类型
    • 字符串-切片-数组-元组-hashpmap
    • 结构体和枚举
    • 控制语句
    • 模式匹配match
    • 函数-method 闭包 迭代器
    • File操作
  • Rust进阶
    • 所有权
      • 所有权基础
      • 如何让函数使用某个值,但不获得其所有权
      • 切片
    • Rust VS C
    • 函数指针
  • Q&A
    • Rust的宏
    • cargo expand
    • web server
    • cargo watch使用
    • lib分类
    • cargo源
  • 参考
    • 博客
    • 项目
  • rust内存泄露
  • 智能指针
  • Tauri类似electron的框架
  • Tokio包使用
  • Rust wasm介绍
  • 多线程
    • C语言
  • Golang语言
    • 项目
  • Java
  • Javascript
Powered by GitBook
On this page
  • 介绍
  • 实例web server
  1. Q&A

web server

Previouscargo expandNextcargo watch使用

Last updated 2 years ago

包:

vscode http插件:thunder client

介绍

框架参考:

  • HTTP客户端

    • 一个简单又强大的HTTP客户端,reqwest是目前使用最多的HTTP库

  • Web框架

    • 基于Tokio和Hyper Tower打造,模块化设计较好,目前口碑很好,值得使用Ergonomic and modular web framework built with Tokio, Tower, and Hyper。4.9k star。Tokio出的,不一定是精品。

    • 功能强大,API简单的Web框架,但是主要开发者目前因为个人原因无法进行后续开发,未来存在不确定性。文档优秀,上手简单,大而全(测试库、cookie、数据流、路由、模板、数据库、ORM等)。17.5k star。

    • 性能极高的Web框架,就是团队内部有些问题,未来存在一定的不确定性。unsafe,actor模型架构模式,可能不稳定。14.3k star。

    • 上述三个web框架都有很深的用户基础,其实都可以选用,如果让我推荐,顺序如下: axum > Rocket > actix-web。 不过如果你不需要多么完善的web功能,只需要一个性能极高的http库,那么actix-web是非常好的选择。

    • :新兴轻量级web框架,基于hyper架构实现,通过组合满足不同需求,适合写中间件。6.5k star。

    • :最可惜的web框架。被借鉴,可以阅读学习代码,不建议使用。3.8k star。

Rocket:入门新手(专注业务)、选择困难、类型安全(追求迭代和稳定)。

Warp:小而美、灵活且有中间件需求。

Actix-web:对性能有极致需求。

Python和JavaScript开发,使用像Django、Flask和Express这样的框架。

实例web server

后端由Rust编写,前端是JavaScript+React完成的类似于S3作为图床的应用程序,用户可以做以下事情:

  • 浏览图床中所有的图片(分页可选)

  • 上传图片

  • 上传图片时可以给图片增加标签

  • 通过名称进行查询或过滤

rustup default nightly

cargo new my-rocket-server --bin

参考

https://github.com/seanmonstar/warp
https://course.rs/practice/third-party-libs.html
reqwest
axum
Rocket
actix-web
warp
Tide
Rocket文档