Rust 用于 Web 开发:初学者指南

更新于 2026-01-17

Jenifer 2024-08-27

Rust 因其速度、安全性和现代化的工具而在 Web 开发领域掀起热潮。在这篇面向初学者的指南中,你将学习如何为 Web 开发配置 Rust,并一步步构建一个简单的项目!

为什么选择 Rust 进行 Web 开发?🛡️

Rust 是构建需要高性能和高安全性的 Web 应用程序的绝佳选择。原因如下:

  • 安全的内存管理 🧠:Rust 通过确保内存的安全使用,帮助预防 bug 和崩溃。
  • 快速高效 ⚡:Rust 的速度与 C++ 等底层语言相当,但使用起来要简单得多。
  • 强大的异步能力 🧵:Rust 能让你同时处理大量任务(例如多个用户请求),而不会降低性能。

第一步:安装 Rust 🖥️

在开始编码之前,我们先安装 Rust:

  1. 使用官方工具安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. 按照屏幕上的提示完成安装。

  2. 通过以下命令确认 Rust 是否已成功安装:

rustc --version

太棒了!Rust 已经准备就绪!🎉


第二步:使用 Rust 构建你的第一个 Web 应用 🔧

现在,我们将使用 actix-web 框架创建一个简单的 Web 应用。actix-web 是一个用于构建 Web 服务器的流行框架。

创建新项目 🏗️

  1. 打开终端,创建一个新的 Rust 项目:
cargo new rust-web-app
cd rust-web-app
  1. 编辑 Cargo.toml 文件,添加 actix-web 依赖项:
[dependencies]
actix-web = "4.0"

编写 Web 服务器代码 ✍️

接下来,我们将创建一个简单的服务器,当有人访问网站时,它会返回 “Hello from Rust!”。

打开 src/main.rs 文件,将其内容替换为以下代码:

use actix_web::{web, App, HttpResponse, HttpServer, Responder};

// 定义 greet 函数
async fn greet() -> impl Responder {
    HttpResponse::Ok().body("Hello from Rust!")
}

// 启动 HTTP 服务器的主函数
#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().route("/", web::get().to(greet)) // 将 "/" 路由映射到 greet 函数
    })
    .bind("127.0.0.1:8080")? // 将服务器绑定到 localhost:8080
    .run()
    .await
}

这段代码做了什么?🤔

  • greet 函数:这是一个函数,当有人访问你服务器的根 URL(主页)时会被调用。它会返回消息 "Hello from Rust!"

    简单来说:就像服务员在顾客点餐(发起请求)后端上食物(返回响应)一样。

  • main 函数:这个函数启动你的服务器。它告诉服务器监听 http://127.0.0.1:8080,并将所有传入的请求路由到 greet 函数。

运行服务器 🖥️

  1. 通过以下命令启动你的 Web 服务器:
cargo run
  1. 打开浏览器,访问 http://127.0.0.1:8080。你会看到以下消息:
Hello from Rust!

恭喜!你刚刚成功构建了你的第一个 Rust Web 服务器!🎉


第三步:添加 JSON 响应 🔄

让我们更进一步,将响应从纯文本改为 JSON 格式。

  1. 更新 greet 函数,使其返回 JSON 数据,如下所示:
use actix_web::{web, App, HttpResponse, HttpServer, Responder};
use serde::Serialize;

#[derive(Serialize)] // 允许该结构体被转换为 JSON
struct Message {
    message: String,
}

// 更新 greet 函数以返回 JSON
async fn greet() -> impl Responder {
    HttpResponse::Ok().json(Message {
        message: "Hello from Rust API!".to_string(),
    })
}
  1. Cargo.toml 文件中添加 serde 依赖项(用于序列化):
[dependencies]
actix-web = "4.0"  # 已经为 actix-web 添加
serde = { version = "1.0", features = ["derive"] }  # 添加这一行以支持 serde
  1. 再次运行服务器:
cargo run
  1. 当你访问 http://127.0.0.1:8080 时,你会看到如下 JSON 响应:
{ "message": "Hello from Rust API!" }

这意味着你现在可以返回结构化数据了,非常适合构建 API!🎉


接下来做什么?🚀

干得漂亮!你现在已成功构建了一个基本的 Rust Web 服务器,它可以发送文本和 JSON 响应。接下来,你可以探索:

  • 添加更多路由以处理不同页面
  • 连接数据库以存储数据
  • 使用更强大的框架(如 Rocket)来扩展你的应用