1个不稳定版本

0.1.0 2021年8月26日

#738HTTP服务器

MIT 许可证

32KB
790

rs-express

rs-express 是一个用Rust编写的简单Web框架,尽量接近 Express.js

此项目的目标是允许Node.js Web开发人员轻松地将他们的Web服务迁移到Rust,而无需学习新的Web框架。

大多数API将与Node.js版本非常相似,甚至在Rust的限制下是相同的。

为了展示其相似性,以下是来自express-js github仓库的 Hello World 示例

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

以下是rs-express中的示例

use rs_express::{App, NextFunction, Request, Response};

#[tokio::main]
async fn main() {
    let mut app: App<()> = App::new();

    app.get(
        "/",
        |_req: &mut Request<()>, res: &mut Response, _next: &mut NextFunction| {
            res.send("Hello, World");
        },
    );

    app.listen(3000).await.expect("Failed to listen");
}

安装

[dependencies]
rs_express = "0.1.0"

功能

  • 熟悉的API
  • 关注高性能
  • 简单易用
  • 应用程序级状态
  • 简单且健壮的路由
  • 易于测试功能

此外,由于它基于 hyper 构建,它提供(摘自其README)

  • HTTP/1和HTTP/2
  • 异步设计
  • 性能领先
  • 经过测试且正确
  • 广泛的生产使用

示例

所有示例都在 examples 文件夹中。

要运行特定示例,请运行以下命令: cargo run --example <example-name>

例如 cargo run --example hello-world

要获取响应,请使用此地址: https://127.0.0.1:3000 。例如,curl https://127.0.0.1:3000/hello 将返回 Hello, World

依赖项

~6–9MB
~146K SLoC