掘金 后端 ( ) • 2024-05-17 13:25

Rust,全栈Web开发框架Rocke中文手册

大家好,我是梦兽。梦兽使用Rust开发web时使用的是Rocke,Rocke翻译为火箭的意思。所以它的开发效率相对其他Rust框架来讲会简单许多。

本次使用的版本为0.5,2024-05-12为这个时间段为最新,如果以后有重大变化。将会更新新集合!

Rocket

Rust Rocket 是一个强大的、功能齐全的Rust web框架,用于构建web应用程序。它以人性化、安全性和性能为设计目标,提供了构建web服务器和处理HTTP请求的简单直观的API。

它的定位有点类似Golang中的gin,主要的特点如下:

  1. 路由系统:Rocket提供了一个声明式的路由系统,允许你通过模式和处理器定义路由。你可以将HTTP方法(GET、POST等)映射到处理这些请求的特定函数。
  2. 请求和响应对象:Rocket拥有丰富的请求(Request)和响应(Response)抽象对象,使你可以方便地操作请求数据和构建响应。
  3. 中间件支持:Rocket支持中间件,允许你在请求处理链中插入代码来执行通用任务,如日志记录、验证或缓存。
  4. 类型安全:Rocket利用Rust的类型系统,确保在编译时进行错误检查,提高了代码的安全性。
  5. 自定义序列化和反序列化:Rocket支持自定义数据类型的序列化和反序列化,可以方便地处理JSON、XML等数据格式。
  6. 会话支持:Rocket提供了内置的会话管理,可以安全地在请求之间存储用户数据。
  7. 模板引擎:Rocket与多种模板引擎(如Diesel和tera)兼容,方便你生成动态HTML页面。

快速开始

使用前需要Rust到最新版本

rustup default stable
# 0.5.0这个版本对应的Rust应该在1.75.0左右

Hello, world!

创建你的第一个应用,首先创建一个新的基于二进制的 Cargo 项目并切换到新目录:

cargo new hello-rocket --bin
cd hello-rocket

现在,将 Rocket 添加为 Cargo.toml 中的依赖项:

[dependencies]
rocket = "0.5.0"

修改 src/main.rs ,使其包含 Rocket Hello, world! 程序的代码,复制如下:

#[macro_use] extern crate rocket;
// 也可以简写 extern crate rocket;

#[get("/")]
fn index() -> &'static str {
    "Hello, world!"
}

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/", routes![index])
}
  1. #[macro_use] extern crate rocket; 这一行是运行Rust允许框架在当前模块(rocket)中使用宏,这一行是必须,放在入口文件即可。
  2. #[get("/")]: 这是一个 Rocket 提供的宏,用于声明一个 HTTP GET 请求的处理函数。这个函数将在用户访问应用的根 URL("/")时被调用。
  3. #[launch]: 另一个 Rocket 宏,它告诉框架这个函数应该在应用启动时运行。
  4. routes![index]: 这是一个宏,它将 index 函数作为路由处理程序列表的一部分。这告诉 Rocket 应用该处理哪些 HTTP 请求。

使用 cargo run 编译并运行程序。您应该看到以下内容:

cargo run
🔧 Configured for debug.
   >> address: 127.0.0.1
   >> port: 8000
   >> workers: [..]
   >> keep-alive: 5s
   >> limits: [..]
   >> tls: disabled
   >> temp dir: /tmp
   >> log level: normal
   >> cli colors: true
🛰  Routes:
   >> (index) GET /
🚀 Rocket has launched from http://127.0.0.1:8000

如果你想修改成8080这种通用的Java后端端口,可以添加Rocket.toml文件。

[default]
address = "127.0.0.1"
port = 8080
workers = 16

更多配置以后会陆续介绍。

如果您喜欢这篇微信,请分享给其他可能觉得有用的人。如果你在微信观看可以点在看支持一下。您也可以继续关注梦兽编程微信公众号,了解更多关于 JavaScript、React、Next.js、MongoDB、Rust、Golang 和 Web 开发的内容。 如果想加入交流群关注梦兽编程微信公众号后获取二维码即可。

本文使用 markdown.com.cn 排版